summaryrefslogtreecommitdiffstats
path: root/examples/widgets
diff options
context:
space:
mode:
authorTor Arne Vestbø <tor.arne.vestbo@qt.io>2023-06-26 15:21:23 +0200
committerTor Arne Vestbø <tor.arne.vestbo@qt.io>2023-06-29 14:49:13 +0200
commit89b463ac2facc1b4fdcf3dcae612a4d8f9109b2c (patch)
treed90a2c08c86eded4122e03b653492e8b10a72d12 /examples/widgets
parent1e954f9be898a604499c53fe639e89e8c48a4b0e (diff)
Move styles example to manual test
Pick-to: 6.5 6.6 Change-Id: I5738932c0c498ce2075a399274e3b80a04ad9211 Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
Diffstat (limited to 'examples/widgets')
-rw-r--r--examples/widgets/doc/src/styles.qdoc448
-rw-r--r--examples/widgets/widgets/CMakeLists.txt1
-rw-r--r--examples/widgets/widgets/styles/CMakeLists.txt51
-rw-r--r--examples/widgets/widgets/styles/images/woodbackground.pngbin7691 -> 0 bytes
-rw-r--r--examples/widgets/widgets/styles/images/woodbutton.pngbin7689 -> 0 bytes
-rw-r--r--examples/widgets/widgets/styles/main.cpp17
-rw-r--r--examples/widgets/widgets/styles/norwegianwoodstyle.cpp310
-rw-r--r--examples/widgets/widgets/styles/norwegianwoodstyle.h43
-rw-r--r--examples/widgets/widgets/styles/styles.pro13
-rw-r--r--examples/widgets/widgets/styles/styles.qrc6
-rw-r--r--examples/widgets/widgets/styles/widgetgallery.cpp277
-rw-r--r--examples/widgets/widgets/styles/widgetgallery.h86
-rw-r--r--examples/widgets/widgets/widgets.pro1
13 files changed, 0 insertions, 1253 deletions
diff --git a/examples/widgets/doc/src/styles.qdoc b/examples/widgets/doc/src/styles.qdoc
deleted file mode 100644
index 19ac0ee452..0000000000
--- a/examples/widgets/doc/src/styles.qdoc
+++ /dev/null
@@ -1,448 +0,0 @@
-// Copyright (C) 2016 The Qt Company Ltd.
-// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GFDL-1.3-no-invariants-only
-
-/*!
- \example widgets/styles
- \title Styles Example
- \ingroup examples-widgets
- \brief The Styles example illustrates how to create custom widget
- drawing styles using Qt, and demonstrates Qt's predefined styles.
-
- \borderedimage styles-enabledwood.png
- \caption Screenshot of the Styles example
-
- A style in Qt is a subclass of QStyle or of one of its
- subclasses. Styles perform drawing on behalf of widgets. Qt
- provides a whole range of predefined styles, either built into
- the Qt Widgets module or found in plugins. Styles are usually
- customized by subclassing QProxyStyle and reimplementing a few
- virtual functions. While QProxyStyle provides a transparent way
- to customize either a specific style or the appropriate platform's
- default style, Qt also provides QCommonStyle as a convenient base
- for full custom style implementations.
-
- In this example, the custom style is called \c NorwegianWoodStyle
- and derives from QProxyStyle. Its main features are the wooden
- textures used for filling most of the widgets and its round
- buttons and comboboxes.
-
- To implement the style, we use some advanced features provided by
- QPainter, such as \l{QPainter::Antialiasing}{antialiasing} (to
- obtain smoother button edges), \l{QColor::alpha()}{alpha blending}
- (to make the buttons appeared raised or sunken), and
- \l{QPainterPath}{painter paths} (to fill the buttons and draw the
- outline). We also use many features of QBrush and QPalette.
-
- The example consists of the following classes:
-
- \list
- \li \c NorwegianWoodStyle inherits from QProxyStyle and implements
- the Norwegian Wood style.
- \li \c WidgetGallery is a \c QDialog subclass that shows the most
- common widgets and allows the user to switch style
- dynamically.
- \endlist
-
- \section1 NorwegianWoodStyle Class Definition
-
- Here's the definition of the \c NorwegianWoodStyle class:
-
- \snippet widgets/styles/norwegianwoodstyle.h 0
-
- The public functions are all declared in QStyle (QProxyStyle's
- grandparent class) and reimplemented here to override the Windows
- look and feel. The private functions are helper functions.
-
- \section1 NorwegianWoodStyle Class Implementation
-
- We will now review the implementation of the \c
- NorwegianWoodStyle class.
-
- \snippet widgets/styles/norwegianwoodstyle.cpp 0
-
- The \c standardPalette() function is reimplemented from QStyle.
- It returns a QPalette with the style's preferred colors and textures.
- Most styles don't need to reimplement that function. The
- Norwegian Wood style reimplements it to set a "wooden" palette.
-
- We start by defining a few \l{QColor}s that we'll need. Then we
- load two PNG images. The \c : prefix in the file path indicates
- that the PNG files are \l{The Qt Resource System}{embedded
- resources}.
-
- \table
- \row \li \inlineimage widgets/styles/images/woodbackground.png
-
- \li \b{woodbackground.png}
-
- This texture is used as the background of most widgets.
- The wood pattern is horizontal.
-
- \row \li \inlineimage widgets/styles/images/woodbutton.png
-
- \li \b{woodbutton.png}
-
- This texture is used for filling push buttons and
- comboboxes. The wood pattern is vertical and more reddish
- than the texture used for the background.
- \endtable
-
- The \c midImage variable is initialized to be the same as \c
- buttonImage, but then we use a QPainter and fill it with a 25%
- opaque black color (a black with an \l{QColor::alpha()}{alpha
- channel} of 63). The result is a somewhat darker image than \c
- buttonImage. This image will be used for filling buttons that the
- user is holding down.
-
- \snippet widgets/styles/norwegianwoodstyle.cpp 1
-
- We initialize the palette. Palettes have various
- \l{QPalette::ColorRole}{color roles}, such as QPalette::Base
- (used for filling text editors, item views, etc.), QPalette::Text
- (used for foreground text), and QPalette::Window (used for
- the background of most widgets). Each role has its own QBrush,
- which usually is a plain color but can also be a brush pattern or
- even a texture (a QPixmap).
-
- In addition to the roles, palettes have several
- \l{QPalette::ColorGroup}{color groups}: active, disabled, and
- inactive. The active color group is used for painting widgets in
- the active window. The disabled group is used for disabled
- widgets. The inactive group is used for all other widgets. Most
- palettes have identical active and inactive groups, while the
- disabled group uses darker shades.
-
- We initialize the QPalette object with a brown color. Qt
- automatically derivates all color roles for all color groups from
- that single color. We then override some of the default values. For
- example, we use Qt::darkGreen instead of the default
- (Qt::darkBlue) for the QPalette::Highlight role. The
- QPalette::setBrush() overload that we use here sets the same
- color or brush for all three color groups.
-
- The \c setTexture() function is a private function that sets the
- texture for a certain color role, while preserving the existing
- color in the QBrush. A QBrush can hold both a solid color and a
- texture at the same time. The solid color is used for drawing
- text and other graphical elements where textures don't look good.
-
- At the end, we set the brush for the disabled color group of the
- palette. We use \c woodbackground.png as the texture for all
- disabled widgets, including buttons, and use a darker color to
- accompany the texture.
-
- \image styles-disabledwood.png The Norwegian Wood style with disabled widgets
-
- Let's move on to the other functions reimplemented from
- QProxyStyle:
-
- \snippet widgets/styles/norwegianwoodstyle.cpp 3
- \snippet widgets/styles/norwegianwoodstyle.cpp 4
-
- This QStyle::polish() overload is called once on every widget
- drawn using the style. We reimplement it to set the Qt::WA_Hover
- attribute on \l{QPushButton}s and \l{QComboBox}es. When this
- attribute is set, Qt generates paint events when the mouse
- pointer enters or leaves the widget. This makes it possible to
- render push buttons and comboboxes differently when the mouse
- pointer is over them.
-
- \snippet widgets/styles/norwegianwoodstyle.cpp 5
- \snippet widgets/styles/norwegianwoodstyle.cpp 6
-
- This QStyle::unpolish() overload is called to undo any
- modification done to the widget in \c polish(). For simplicity,
- we assume that the flag wasn't set before \c polish() was called.
- In an ideal world, we would remember the original state for each
- widgets (e.g., using a QMap<QWidget *, bool>) and restore it in
- \c unpolish().
-
- \snippet widgets/styles/norwegianwoodstyle.cpp 7
- \snippet widgets/styles/norwegianwoodstyle.cpp 8
-
- The \l{QStyle::pixelMetric()}{pixelMetric()} function returns the
- size in pixels for a certain user interface element. By
- reimplementing this function, we can affect the way certain
- widgets are drawn and their size hint. Here, we return 8 as the
- width around a shown in a QComboBox, ensuring that there is
- enough place around the text and the arrow for the Norwegian Wood
- round corners. The default value for this setting in the Windows
- style is 2.
-
- We also change the extent of \l{QScrollBar}s, i.e., the height
- for a horizontal scroll bar and the width for a vertical scroll
- bar, to be 4 pixels more than in the Windows style. This makes the
- style a bit more distinctive.
-
- For all other QStyle::PixelMetric elements, we use the Windows
- settings.
-
- \snippet widgets/styles/norwegianwoodstyle.cpp 9
- \snippet widgets/styles/norwegianwoodstyle.cpp 10
-
- The \l{QStyle::styleHint()}{styleHint()} function returns some
- hints to widgets or to the base style (in our case QProxyStyle)
- about how to draw the widgets. The Windows style returns \c true
- for the QStyle::SH_DitherDisabledText hint, resulting in a most
- unpleasing visual effect. We override this behavior and return \c
- false instead. We also return \c true for the
- QStyle::SH_EtchDisabledText hint, meaning that disabled text is
- rendered with an embossed look.
-
- \snippet widgets/styles/norwegianwoodstyle.cpp 11
- \snippet widgets/styles/norwegianwoodstyle.cpp 12
-
- The \l{QStyle::drawPrimitive()}{drawPrimitive()} function is
- called by Qt widgets to draw various fundamental graphical
- elements. Here we reimplement it to draw QPushButton and
- QComboBox with round corners. The button part of these widgets is
- drawn using the QStyle::PE_PanelButtonCommand primitive element.
-
- The \c option parameter, of type QStyleOption, contains
- everything we need to know about the widget we want to draw on.
- In particular, \c option->rect gives the rectangle within which
- to draw the primitive element. The \c painter parameter is a
- QPainter object that we can use to draw on the widget.
-
- The \c widget parameter is the widget itself. Normally, all the
- information we need is available in \c option and \c painter, so
- we don't need \c widget. We can use it to perform special
- effects; for example, QMacStyle uses it to animate default
- buttons. If you use it, be aware that the caller is allowed to
- pass a null pointer.
-
- We start by defining three \l{QColor}s that we'll need later on.
- We also put the x, y, width, and height components of the
- widget's rectangle in local variables. The value used for the \c
- semiTransparentWhite and for the \c semiTransparentBlack color's
- alpha channel depends on whether the mouse cursor is over the
- widget or not. Since we set the Qt::WA_Hover attribute on
- \l{QPushButton}s and \l{QComboBox}es, we can rely on the
- QStyle::State_MouseOver flag to be set when the mouse is over the
- widget.
-
- \snippet widgets/styles/norwegianwoodstyle.cpp 13
- \snippet widgets/styles/norwegianwoodstyle.cpp 14
-
- The \c roundRect variable is a QPainterPath. A QPainterPath is
- a vectorial specification of a shape. Any shape (rectangle,
- ellipse, spline, etc.) or combination of shapes can be expressed
- as a path. We will use \c roundRect both for filling the button
- background with a wooden texture and for drawing the outline. The
- \c roundRectPath() function is a private function; we will come
- back to it later.
-
- \snippet widgets/styles/norwegianwoodstyle.cpp 15
- \snippet widgets/styles/norwegianwoodstyle.cpp 16
- \snippet widgets/styles/norwegianwoodstyle.cpp 17
- \snippet widgets/styles/norwegianwoodstyle.cpp 18
-
- We define two variables, \c brush and \c darker, and initialize
- them based on the state of the button:
-
- \list
- \li If the button is a \l{QPushButton::flat}{flat button}, we use
- the \l{QPalette::Window}{Window} brush. We set \c
- darker to \c true if the button is
- \l{QAbstractButton::down}{down} or
- \l{QAbstractButton::checked}{checked}.
- \li If the button is currently held down by the user or in the
- \l{QAbstractButton::checked}{checked} state, we use the
- \l{QPalette::Mid}{Mid} component of the palette. We set
- \c darker to \c true if the button is
- \l{QAbstractButton::checked}{checked}.
- \li Otherwise, we use the \l{QPalette::Button}{Button} component
- of the palette.
- \endlist
-
- The screenshot below illustrates how \l{QPushButton}s are
- rendered based on their state:
-
- \image styles-woodbuttons.png Norwegian Wood buttons in different states
-
- To discover whether the button is flat or not, we need to cast
- the \c option parameter to QStyleOptionButton and check if the
- \l{QStyleOptionButton::features}{features} member specifies the
- QStyleOptionButton::Flat flag. The qstyleoption_cast() function
- performs a dynamic cast; if \c option is not a
- QStyleOptionButton, qstyleoption_cast() returns a null pointer.
-
- \snippet widgets/styles/norwegianwoodstyle.cpp 19
- \snippet widgets/styles/norwegianwoodstyle.cpp 20
- \snippet widgets/styles/norwegianwoodstyle.cpp 21
- \snippet widgets/styles/norwegianwoodstyle.cpp 22
- \snippet widgets/styles/norwegianwoodstyle.cpp 23
-
- We turn on antialiasing on QPainter. Antialiasing is a technique
- that reduces the visual distortion that occurs when the edges of
- a shape are converted into pixels. For the Norwegian Wood style,
- we use it to obtain smoother edges for the round buttons.
-
- \image styles-aliasing.png Norwegian wood buttons with and without antialiasing
-
- The first call to QPainter::fillPath() draws the background of
- the button with a wooden texture. The second call to
- \l{QPainter::fillPath()}{fillPath()} paints the same area with a
- semi-transparent black color (a black color with an alpha channel
- of 63) to make the area darker if \c darker is true.
-
- \snippet widgets/styles/norwegianwoodstyle.cpp 24
- \snippet widgets/styles/norwegianwoodstyle.cpp 25
-
- Next, we draw the outline. The top-left half of the outline and
- the bottom-right half of the outline are drawn using different
- \l{QPen}s to produce a 3D effect. Normally, the top-left half of
- the outline is drawn lighter whereas the bottom-right half is
- drawn darker, but if the button is
- \l{QAbstractButton::down}{down} or
- \l{QAbstractButton::checked}{checked}, we invert the two
- \l{QPen}s to give a sunken look to the button.
-
- \snippet widgets/styles/norwegianwoodstyle.cpp 26
-
- We draw the top-left part of the outline by calling
- QPainter::drawPath() with an appropriate
- \l{QPainter::setClipRegion()}{clip region}. If the
- \l{QStyleOption::direction}{layout direction} is right-to-left
- instead of left-to-right, we swap the \c x1, \c x2, \c x3, and \c
- x4 variables to obtain correct results. On right-to-left desktop,
- the "light" comes from the top-right corner of the screen instead
- of the top-left corner; raised and sunken widgets must be drawn
- accordingly.
-
- The diagram below illustrates how 3D effects are drawn according
- to the layout direction. The area in red on the diagram
- corresponds to the \c topHalf polygon:
-
- \image styles-3d.png
-
- An easy way to test how a style looks in right-to-left mode is to
- pass the \c -reverse command-line option to the application. This
- option is recognized by the QApplication constructor.
-
- \snippet widgets/styles/norwegianwoodstyle.cpp 32
- \snippet widgets/styles/norwegianwoodstyle.cpp 33
- \snippet widgets/styles/norwegianwoodstyle.cpp 34
-
- The bottom-right part of the outline is drawn in a similar
- fashion. Then we draw a one-pixel wide outline around the entire
- button, using the \l{QPalette::WindowText}{WindowText} component
- of the QPalette.
-
- This completes the QStyle::PE_PanelButtonCommand case of the \c
- switch statement. Other primitive elements are handled by the
- base style. Let's now turn to the other \c NorwegianWoodStyle
- member functions:
-
- \snippet widgets/styles/norwegianwoodstyle.cpp 35
- \snippet widgets/styles/norwegianwoodstyle.cpp 36
-
- We reimplement QStyle::drawControl() to draw the text on a
- QPushButton in a bright color when the button is
- \l{QAbstractButton::down}{down} or
- \l{QAbstractButton::checked}{checked}.
-
- If the \c option parameter points to a QStyleOptionButton object
- (it normally should), we take a copy of the object and modify its
- \l{QStyleOption::palette}{palette} member to make the
- QPalette::ButtonText be the same as the QPalette::BrightText
- component (unless the widget is disabled).
-
- \snippet widgets/styles/norwegianwoodstyle.cpp 37
- \snippet widgets/styles/norwegianwoodstyle.cpp 38
-
- The \c setTexture() function is a private function that sets the
- \l{QBrush::texture()}{texture} component of the \l{QBrush}es for
- a certain \l{QPalette::ColorRole}{color role}, for all three
- \l{QPalette::ColorGroup}{color groups} (active, disabled,
- inactive). We used it to initialize the Norwegian Wood palette in
- \c standardPalette.
-
- \snippet widgets/styles/norwegianwoodstyle.cpp 39
- \snippet widgets/styles/norwegianwoodstyle.cpp 40
-
- The \c roundRectPath() function is a private function that
- constructs a QPainterPath object for round buttons. The path
- consists of eight segments: four arc segments for the corners and
- four lines for the sides.
-
- With around 250 lines of code, we have a fully functional custom
- style based on one of the predefined styles. Custom styles can be
- used to provide a distinct look to an application or family of
- applications.
-
- \section1 WidgetGallery Class
-
- For completeness, we will quickly review the \c WidgetGallery
- class, which contains the most common Qt widgets and allows the
- user to change style dynamically. Here's the class definition:
-
- \snippet widgets/styles/widgetgallery.h 0
- \dots
- \snippet widgets/styles/widgetgallery.h 1
-
- Here's the \c WidgetGallery constructor:
-
- \snippet widgets/styles/widgetgallery.cpp 0
-
- We start by creating child widgets. The \uicontrol Style combobox is
- initialized with all the styles known to QStyleFactory, in
- addition to \c NorwegianWood. The \c create...() functions are
- private functions that set up the various parts of the \c
- WidgetGallery.
-
- \snippet widgets/styles/widgetgallery.cpp 1
- \snippet widgets/styles/widgetgallery.cpp 2
-
- We connect the \uicontrol Style combobox to the \c changeStyle()
- private slot, the \uicontrol{Use style's standard palette} check box to
- the \c changePalette() slot, and the \uicontrol{Disable widgets} check
- box to the child widgets'
- \l{QWidget::setDisabled()}{setDisabled()} slot.
-
- \snippet widgets/styles/widgetgallery.cpp 3
- \snippet widgets/styles/widgetgallery.cpp 4
-
- Finally, we put the child widgets in layouts.
-
- \snippet widgets/styles/widgetgallery.cpp 5
- \snippet widgets/styles/widgetgallery.cpp 6
-
- When the user changes the style in the combobox, we call
- QApplication::setStyle() to dynamically change the style of the
- application.
-
- \snippet widgets/styles/widgetgallery.cpp 7
- \snippet widgets/styles/widgetgallery.cpp 8
-
- If the user turns the \uicontrol{Use style's standard palette} on, the
- current style's \l{QStyle::standardPalette()}{standard palette}
- is used; otherwise, the system's default palette is honored.
-
- \snippet widgets/styles/widgetgallery.cpp 9
- \snippet widgets/styles/widgetgallery.cpp 10
-
- The \c advanceProgressBar() slot is called at regular intervals
- to advance the progress bar. Since we don't know how long the
- user will keep the Styles application running, we use a
- logarithmic formula: The closer the progress bar gets to 100%,
- the slower it advances.
-
- We will review \c createProgressBar() in a moment.
-
- \snippet widgets/styles/widgetgallery.cpp 11
- \snippet widgets/styles/widgetgallery.cpp 12
-
- The \c createTopLeftGroupBox() function creates the QGroupBox
- that occupies the top-left corner of the \c WidgetGallery. We
- skip the \c createTopRightGroupBox(), \c
- createBottomLeftTabWidget(), and \c createBottomRightGroupBox()
- functions, which are very similar.
-
- \snippet widgets/styles/widgetgallery.cpp 13
-
- In \c createProgressBar(), we create a QProgressBar at the bottom
- of the \c WidgetGallery and connect its
- \l{QTimer::timeout()}{timeout()} signal to the \c
- advanceProgressBar() slot.
-*/
diff --git a/examples/widgets/widgets/CMakeLists.txt b/examples/widgets/widgets/CMakeLists.txt
index 43d03bdea2..d548c63ff8 100644
--- a/examples/widgets/widgets/CMakeLists.txt
+++ b/examples/widgets/widgets/CMakeLists.txt
@@ -11,7 +11,6 @@ qt_internal_add_example(shapedclock)
qt_internal_add_example(shortcuteditor)
qt_internal_add_example(sliders)
qt_internal_add_example(spinboxes)
-qt_internal_add_example(styles)
qt_internal_add_example(tablet)
qt_internal_add_example(tetrix)
qt_internal_add_example(tooltips)
diff --git a/examples/widgets/widgets/styles/CMakeLists.txt b/examples/widgets/widgets/styles/CMakeLists.txt
deleted file mode 100644
index 9632f01a89..0000000000
--- a/examples/widgets/widgets/styles/CMakeLists.txt
+++ /dev/null
@@ -1,51 +0,0 @@
-# Copyright (C) 2022 The Qt Company Ltd.
-# SPDX-License-Identifier: BSD-3-Clause
-
-cmake_minimum_required(VERSION 3.16)
-project(styles LANGUAGES CXX)
-
-if(NOT DEFINED INSTALL_EXAMPLESDIR)
- set(INSTALL_EXAMPLESDIR "examples")
-endif()
-
-set(INSTALL_EXAMPLEDIR "${INSTALL_EXAMPLESDIR}/widgets/widgets/styles")
-
-find_package(Qt6 REQUIRED COMPONENTS Core Gui Widgets)
-
-qt_standard_project_setup()
-
-qt_add_executable(styles
- main.cpp
- norwegianwoodstyle.cpp norwegianwoodstyle.h
- widgetgallery.cpp widgetgallery.h
-)
-
-set_target_properties(styles PROPERTIES
- WIN32_EXECUTABLE TRUE
- MACOSX_BUNDLE TRUE
-)
-
-target_link_libraries(styles PRIVATE
- Qt6::Core
- Qt6::Gui
- Qt6::Widgets
-)
-
-# Resources:
-set(styles_resource_files
- "images/woodbackground.png"
- "images/woodbutton.png"
-)
-
-qt_add_resources(styles "styles"
- PREFIX
- "/"
- FILES
- ${styles_resource_files}
-)
-
-install(TARGETS styles
- RUNTIME DESTINATION "${INSTALL_EXAMPLEDIR}"
- BUNDLE DESTINATION "${INSTALL_EXAMPLEDIR}"
- LIBRARY DESTINATION "${INSTALL_EXAMPLEDIR}"
-)
diff --git a/examples/widgets/widgets/styles/images/woodbackground.png b/examples/widgets/widgets/styles/images/woodbackground.png
deleted file mode 100644
index 8be3366bb4..0000000000
--- a/examples/widgets/widgets/styles/images/woodbackground.png
+++ /dev/null
Binary files differ
diff --git a/examples/widgets/widgets/styles/images/woodbutton.png b/examples/widgets/widgets/styles/images/woodbutton.png
deleted file mode 100644
index adb59ef633..0000000000
--- a/examples/widgets/widgets/styles/images/woodbutton.png
+++ /dev/null
Binary files differ
diff --git a/examples/widgets/widgets/styles/main.cpp b/examples/widgets/widgets/styles/main.cpp
deleted file mode 100644
index 5c33895ea4..0000000000
--- a/examples/widgets/widgets/styles/main.cpp
+++ /dev/null
@@ -1,17 +0,0 @@
-// Copyright (C) 2016 The Qt Company Ltd.
-// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
-
-#include <QApplication>
-
-#include "norwegianwoodstyle.h"
-#include "widgetgallery.h"
-
-int main(int argc, char *argv[])
-{
- QApplication::setStyle(new NorwegianWoodStyle);
-
- QApplication app(argc, argv);
- WidgetGallery gallery;
- gallery.show();
- return app.exec();
-}
diff --git a/examples/widgets/widgets/styles/norwegianwoodstyle.cpp b/examples/widgets/widgets/styles/norwegianwoodstyle.cpp
deleted file mode 100644
index a8969dfd54..0000000000
--- a/examples/widgets/widgets/styles/norwegianwoodstyle.cpp
+++ /dev/null
@@ -1,310 +0,0 @@
-// Copyright (C) 2016 The Qt Company Ltd.
-// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
-
-#include "norwegianwoodstyle.h"
-
-#include <QComboBox>
-#include <QPainter>
-#include <QPainterPath>
-#include <QPushButton>
-#include <QStyleFactory>
-
-NorwegianWoodStyle::NorwegianWoodStyle() :
- QProxyStyle(QStyleFactory::create("windows"))
-{
- setObjectName("NorwegianWood");
-}
-
-//! [0]
-QPalette NorwegianWoodStyle::standardPalette() const
-{
- if (!m_standardPalette.isBrushSet(QPalette::Disabled, QPalette::Mid)) {
- QColor brown(212, 140, 95);
- QColor beige(236, 182, 120);
- QColor slightlyOpaqueBlack(0, 0, 0, 63);
-
- QImage backgroundImage(":/images/woodbackground.png");
- QImage buttonImage(":/images/woodbutton.png");
- QImage midImage = buttonImage.convertToFormat(QImage::Format_RGB32);
-
- QPainter painter;
- painter.begin(&midImage);
- painter.setPen(Qt::NoPen);
- painter.fillRect(midImage.rect(), slightlyOpaqueBlack);
- painter.end();
- //! [0]
-
- //! [1]
- QPalette palette(brown);
-
- palette.setBrush(QPalette::BrightText, Qt::white);
- palette.setBrush(QPalette::Base, beige);
- palette.setBrush(QPalette::Highlight, Qt::darkGreen);
- setTexture(palette, QPalette::Button, buttonImage);
- setTexture(palette, QPalette::Mid, midImage);
- setTexture(palette, QPalette::Window, backgroundImage);
-
- QBrush brush = palette.window();
- brush.setColor(brush.color().darker());
-
- palette.setBrush(QPalette::Disabled, QPalette::WindowText, brush);
- palette.setBrush(QPalette::Disabled, QPalette::Text, brush);
- palette.setBrush(QPalette::Disabled, QPalette::ButtonText, brush);
- palette.setBrush(QPalette::Disabled, QPalette::Base, brush);
- palette.setBrush(QPalette::Disabled, QPalette::Button, brush);
- palette.setBrush(QPalette::Disabled, QPalette::Mid, brush);
-
- m_standardPalette = palette;
- }
-
- return m_standardPalette;
-}
-//! [1]
-
-//! [3]
-void NorwegianWoodStyle::polish(QWidget *widget)
-//! [3] //! [4]
-{
- if (qobject_cast<QPushButton *>(widget)
- || qobject_cast<QComboBox *>(widget))
- widget->setAttribute(Qt::WA_Hover, true);
-}
-//! [4]
-
-//! [5]
-void NorwegianWoodStyle::unpolish(QWidget *widget)
-//! [5] //! [6]
-{
- if (qobject_cast<QPushButton *>(widget)
- || qobject_cast<QComboBox *>(widget))
- widget->setAttribute(Qt::WA_Hover, false);
-}
-//! [6]
-
-//! [7]
-int NorwegianWoodStyle::pixelMetric(PixelMetric metric,
-//! [7] //! [8]
- const QStyleOption *option,
- const QWidget *widget) const
-{
- switch (metric) {
- case PM_ComboBoxFrameWidth:
- return 8;
- case PM_ScrollBarExtent:
- return QProxyStyle::pixelMetric(metric, option, widget) + 4;
- default:
- return QProxyStyle::pixelMetric(metric, option, widget);
- }
-}
-//! [8]
-
-//! [9]
-int NorwegianWoodStyle::styleHint(StyleHint hint, const QStyleOption *option,
-//! [9] //! [10]
- const QWidget *widget,
- QStyleHintReturn *returnData) const
-{
- switch (hint) {
- case SH_DitherDisabledText:
- return int(false);
- case SH_EtchDisabledText:
- return int(true);
- default:
- return QProxyStyle::styleHint(hint, option, widget, returnData);
- }
-}
-//! [10]
-
-//! [11]
-void NorwegianWoodStyle::drawPrimitive(PrimitiveElement element,
-//! [11] //! [12]
- const QStyleOption *option,
- QPainter *painter,
- const QWidget *widget) const
-{
- switch (element) {
- case PE_PanelButtonCommand:
- {
- int delta = (option->state & State_MouseOver) ? 64 : 0;
- QColor slightlyOpaqueBlack(0, 0, 0, 63);
- QColor semiTransparentWhite(255, 255, 255, 127 + delta);
- QColor semiTransparentBlack(0, 0, 0, 127 - delta);
-
- int x, y, width, height;
- option->rect.getRect(&x, &y, &width, &height);
-//! [12]
-
-//! [13]
- QPainterPath roundRect = roundRectPath(option->rect);
-//! [13] //! [14]
- int radius = qMin(width, height) / 2;
-//! [14]
-
-//! [15]
- QBrush brush;
-//! [15] //! [16]
- bool darker;
-
- const QStyleOptionButton *buttonOption =
- qstyleoption_cast<const QStyleOptionButton *>(option);
- if (buttonOption
- && (buttonOption->features & QStyleOptionButton::Flat)) {
- brush = option->palette.window();
- darker = (option->state & (State_Sunken | State_On));
- } else {
- if (option->state & (State_Sunken | State_On)) {
- brush = option->palette.mid();
- darker = !(option->state & State_Sunken);
- } else {
- brush = option->palette.button();
- darker = false;
-//! [16] //! [17]
- }
-//! [17] //! [18]
- }
-//! [18]
-
-//! [19]
- painter->save();
-//! [19] //! [20]
- painter->setRenderHint(QPainter::Antialiasing, true);
-//! [20] //! [21]
- painter->fillPath(roundRect, brush);
-//! [21] //! [22]
- if (darker)
-//! [22] //! [23]
- painter->fillPath(roundRect, slightlyOpaqueBlack);
-//! [23]
-
-//! [24]
- int penWidth;
-//! [24] //! [25]
- if (radius < 10)
- penWidth = 3;
- else if (radius < 20)
- penWidth = 5;
- else
- penWidth = 7;
-
- QPen topPen(semiTransparentWhite, penWidth);
- QPen bottomPen(semiTransparentBlack, penWidth);
-
- if (option->state & (State_Sunken | State_On))
- qSwap(topPen, bottomPen);
-//! [25]
-
-//! [26]
- int x1 = x;
- int x2 = x + radius;
- int x3 = x + width - radius;
- int x4 = x + width;
-
- if (option->direction == Qt::RightToLeft) {
- qSwap(x1, x4);
- qSwap(x2, x3);
- }
-
- QPolygon topHalf;
- topHalf << QPoint(x1, y)
- << QPoint(x4, y)
- << QPoint(x3, y + radius)
- << QPoint(x2, y + height - radius)
- << QPoint(x1, y + height);
-
- painter->setClipPath(roundRect);
- painter->setClipRegion(topHalf, Qt::IntersectClip);
- painter->setPen(topPen);
- painter->drawPath(roundRect);
-//! [26] //! [32]
-
- QPolygon bottomHalf = topHalf;
- bottomHalf[0] = QPoint(x4, y + height);
-
- painter->setClipPath(roundRect);
- painter->setClipRegion(bottomHalf, Qt::IntersectClip);
- painter->setPen(bottomPen);
- painter->drawPath(roundRect);
-
- painter->setPen(option->palette.windowText().color());
- painter->setClipping(false);
- painter->drawPath(roundRect);
-
- painter->restore();
- }
- break;
-//! [32] //! [33]
- default:
-//! [33] //! [34]
- QProxyStyle::drawPrimitive(element, option, painter, widget);
- }
-}
-//! [34]
-
-//! [35]
-void NorwegianWoodStyle::drawControl(ControlElement element,
-//! [35] //! [36]
- const QStyleOption *option,
- QPainter *painter,
- const QWidget *widget) const
-{
- switch (element) {
- case CE_PushButtonLabel:
- {
- QStyleOptionButton myButtonOption;
- const QStyleOptionButton *buttonOption =
- qstyleoption_cast<const QStyleOptionButton *>(option);
- if (buttonOption) {
- myButtonOption = *buttonOption;
- if (myButtonOption.palette.currentColorGroup()
- != QPalette::Disabled) {
- if (myButtonOption.state & (State_Sunken | State_On)) {
- myButtonOption.palette.setBrush(QPalette::ButtonText,
- myButtonOption.palette.brightText());
- }
- }
- }
- QProxyStyle::drawControl(element, &myButtonOption, painter, widget);
- }
- break;
- default:
- QProxyStyle::drawControl(element, option, painter, widget);
- }
-}
-//! [36]
-
-//! [37]
-void NorwegianWoodStyle::setTexture(QPalette &palette, QPalette::ColorRole role,
-//! [37] //! [38]
- const QImage &image)
-{
- for (int i = 0; i < QPalette::NColorGroups; ++i) {
- QBrush brush(image);
- brush.setColor(palette.brush(QPalette::ColorGroup(i), role).color());
- palette.setBrush(QPalette::ColorGroup(i), role, brush);
- }
-}
-//! [38]
-
-//! [39]
-QPainterPath NorwegianWoodStyle::roundRectPath(const QRect &rect)
-//! [39] //! [40]
-{
- int radius = qMin(rect.width(), rect.height()) / 2;
- int diam = 2 * radius;
-
- int x1, y1, x2, y2;
- rect.getCoords(&x1, &y1, &x2, &y2);
-
- QPainterPath path;
- path.moveTo(x2, y1 + radius);
- path.arcTo(QRect(x2 - diam, y1, diam, diam), 0.0, +90.0);
- path.lineTo(x1 + radius, y1);
- path.arcTo(QRect(x1, y1, diam, diam), 90.0, +90.0);
- path.lineTo(x1, y2 - radius);
- path.arcTo(QRect(x1, y2 - diam, diam, diam), 180.0, +90.0);
- path.lineTo(x1 + radius, y2);
- path.arcTo(QRect(x2 - diam, y2 - diam, diam, diam), 270.0, +90.0);
- path.closeSubpath();
- return path;
-}
-//! [40]
diff --git a/examples/widgets/widgets/styles/norwegianwoodstyle.h b/examples/widgets/widgets/styles/norwegianwoodstyle.h
deleted file mode 100644
index 5af2171f35..0000000000
--- a/examples/widgets/widgets/styles/norwegianwoodstyle.h
+++ /dev/null
@@ -1,43 +0,0 @@
-// Copyright (C) 2016 The Qt Company Ltd.
-// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
-
-#ifndef NORWEGIANWOODSTYLE_H
-#define NORWEGIANWOODSTYLE_H
-
-#include <QProxyStyle>
-#include <QPalette>
-
-QT_BEGIN_NAMESPACE
-class QPainterPath;
-QT_END_NAMESPACE
-
-//! [0]
-class NorwegianWoodStyle : public QProxyStyle
-{
- Q_OBJECT
-
-public:
- NorwegianWoodStyle();
-
- QPalette standardPalette() const override;
-
- void polish(QWidget *widget) override;
- void unpolish(QWidget *widget) override;
- int pixelMetric(PixelMetric metric, const QStyleOption *option,
- const QWidget *widget) const override;
- int styleHint(StyleHint hint, const QStyleOption *option,
- const QWidget *widget, QStyleHintReturn *returnData) const override;
- void drawPrimitive(PrimitiveElement element, const QStyleOption *option,
- QPainter *painter, const QWidget *widget) const override;
- void drawControl(ControlElement control, const QStyleOption *option,
- QPainter *painter, const QWidget *widget) const override;
-
-private:
- static void setTexture(QPalette &palette, QPalette::ColorRole role,
- const QImage &image);
- static QPainterPath roundRectPath(const QRect &rect);
- mutable QPalette m_standardPalette;
-};
-//! [0]
-
-#endif
diff --git a/examples/widgets/widgets/styles/styles.pro b/examples/widgets/widgets/styles/styles.pro
deleted file mode 100644
index 87dee7e04c..0000000000
--- a/examples/widgets/widgets/styles/styles.pro
+++ /dev/null
@@ -1,13 +0,0 @@
-QT += widgets
-requires(qtConfig(combobox))
-
-HEADERS = norwegianwoodstyle.h \
- widgetgallery.h
-SOURCES = main.cpp \
- norwegianwoodstyle.cpp \
- widgetgallery.cpp
-RESOURCES = styles.qrc
-
-# install
-target.path = $$[QT_INSTALL_EXAMPLES]/widgets/widgets/styles
-INSTALLS += target
diff --git a/examples/widgets/widgets/styles/styles.qrc b/examples/widgets/widgets/styles/styles.qrc
deleted file mode 100644
index 4fdad8d914..0000000000
--- a/examples/widgets/widgets/styles/styles.qrc
+++ /dev/null
@@ -1,6 +0,0 @@
-<!DOCTYPE RCC><RCC version="1.0">
-<qresource>
- <file>images/woodbutton.png</file>
- <file>images/woodbackground.png</file>
-</qresource>
-</RCC>
diff --git a/examples/widgets/widgets/styles/widgetgallery.cpp b/examples/widgets/widgets/styles/widgetgallery.cpp
deleted file mode 100644
index 83cb99a52c..0000000000
--- a/examples/widgets/widgets/styles/widgetgallery.cpp
+++ /dev/null
@@ -1,277 +0,0 @@
-// Copyright (C) 2016 The Qt Company Ltd.
-// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
-
-#include "widgetgallery.h"
-#include "norwegianwoodstyle.h"
-
-#include <QApplication>
-#include <QCheckBox>
-#include <QComboBox>
-#include <QDateTimeEdit>
-#include <QDial>
-#include <QGridLayout>
-#include <QGroupBox>
-#include <QLabel>
-#include <QLineEdit>
-#include <QProgressBar>
-#include <QPushButton>
-#include <QRadioButton>
-#include <QScrollBar>
-#include <QSpinBox>
-#include <QStyle>
-#include <QStyleFactory>
-#include <QTableWidget>
-#include <QTextEdit>
-#include <QTimer>
-
-//! [0]
-WidgetGallery::WidgetGallery(QWidget *parent)
- : QDialog(parent)
-{
- styleComboBox = new QComboBox;
- const QString defaultStyleName = QApplication::style()->objectName();
- QStringList styleNames = QStyleFactory::keys();
- styleNames.append("NorwegianWood");
- for (int i = 1, size = styleNames.size(); i < size; ++i) {
- if (defaultStyleName.compare(styleNames.at(i), Qt::CaseInsensitive) == 0) {
- styleNames.swapItemsAt(0, i);
- break;
- }
- }
- styleComboBox->addItems(styleNames);
-
- styleLabel = new QLabel(tr("&Style:"));
- styleLabel->setBuddy(styleComboBox);
-
- useStylePaletteCheckBox = new QCheckBox(tr("&Use style's standard palette"));
- useStylePaletteCheckBox->setChecked(true);
-
- disableWidgetsCheckBox = new QCheckBox(tr("&Disable widgets"));
-
- createTopLeftGroupBox();
- createTopRightGroupBox();
- createBottomLeftTabWidget();
- createBottomRightGroupBox();
- createProgressBar();
-//! [0]
-
-//! [1]
- connect(styleComboBox, &QComboBox::textActivated,
-//! [1] //! [2]
- this, &WidgetGallery::changeStyle);
- connect(useStylePaletteCheckBox, &QCheckBox::toggled,
- this, &WidgetGallery::changePalette);
- connect(disableWidgetsCheckBox, &QCheckBox::toggled,
- topLeftGroupBox, &QGroupBox::setDisabled);
- connect(disableWidgetsCheckBox, &QCheckBox::toggled,
- topRightGroupBox, &QGroupBox::setDisabled);
- connect(disableWidgetsCheckBox, &QCheckBox::toggled,
- bottomLeftTabWidget, &QGroupBox::setDisabled);
- connect(disableWidgetsCheckBox, &QCheckBox::toggled,
- bottomRightGroupBox, &QGroupBox::setDisabled);
-//! [2]
-
-//! [3]
- QHBoxLayout *topLayout = new QHBoxLayout;
-//! [3] //! [4]
- topLayout->addWidget(styleLabel);
- topLayout->addWidget(styleComboBox);
- topLayout->addStretch(1);
- topLayout->addWidget(useStylePaletteCheckBox);
- topLayout->addWidget(disableWidgetsCheckBox);
-
- QGridLayout *mainLayout = new QGridLayout;
- mainLayout->addLayout(topLayout, 0, 0, 1, 2);
- mainLayout->addWidget(topLeftGroupBox, 1, 0);
- mainLayout->addWidget(topRightGroupBox, 1, 1);
- mainLayout->addWidget(bottomLeftTabWidget, 2, 0);
- mainLayout->addWidget(bottomRightGroupBox, 2, 1);
- mainLayout->addWidget(progressBar, 3, 0, 1, 2);
- mainLayout->setRowStretch(1, 1);
- mainLayout->setRowStretch(2, 1);
- mainLayout->setColumnStretch(0, 1);
- mainLayout->setColumnStretch(1, 1);
- setLayout(mainLayout);
-
- setWindowTitle(tr("Styles"));
- styleChanged();
-}
-//! [4]
-
-//! [5]
-void WidgetGallery::changeStyle(const QString &styleName)
-//! [5] //! [6]
-{
- if (styleName == "NorwegianWood")
- QApplication::setStyle(new NorwegianWoodStyle);
- else
- QApplication::setStyle(QStyleFactory::create(styleName));
-}
-//! [6]
-
-//! [7]
-void WidgetGallery::changePalette()
-//! [7] //! [8]
-{
- QApplication::setPalette(useStylePaletteCheckBox->isChecked() ?
- QApplication::style()->standardPalette() : QPalette());
-}
-//! [8]
-
-void WidgetGallery::changeEvent(QEvent *event)
-{
- if (event->type() == QEvent::StyleChange)
- styleChanged();
-}
-
-void WidgetGallery::styleChanged()
-{
- auto styleName = QApplication::style()->objectName();
- for (int i = 0; i < styleComboBox->count(); ++i) {
- if (QString::compare(styleComboBox->itemText(i), styleName, Qt::CaseInsensitive) == 0) {
- styleComboBox->setCurrentIndex(i);
- break;
- }
- }
-
- changePalette();
-}
-
-//! [9]
-void WidgetGallery::advanceProgressBar()
-//! [9] //! [10]
-{
- int curVal = progressBar->value();
- int maxVal = progressBar->maximum();
- progressBar->setValue(curVal + (maxVal - curVal) / 100);
-}
-//! [10]
-
-//! [11]
-void WidgetGallery::createTopLeftGroupBox()
-//! [11] //! [12]
-{
- topLeftGroupBox = new QGroupBox(tr("Group 1"));
-
- radioButton1 = new QRadioButton(tr("Radio button 1"));
- radioButton2 = new QRadioButton(tr("Radio button 2"));
- radioButton3 = new QRadioButton(tr("Radio button 3"));
- radioButton1->setChecked(true);
-
- checkBox = new QCheckBox(tr("Tri-state check box"));
- checkBox->setTristate(true);
- checkBox->setCheckState(Qt::PartiallyChecked);
-
- QVBoxLayout *layout = new QVBoxLayout;
- layout->addWidget(radioButton1);
- layout->addWidget(radioButton2);
- layout->addWidget(radioButton3);
- layout->addWidget(checkBox);
- layout->addStretch(1);
- topLeftGroupBox->setLayout(layout);
-}
-//! [12]
-
-void WidgetGallery::createTopRightGroupBox()
-{
- topRightGroupBox = new QGroupBox(tr("Group 2"));
-
- defaultPushButton = new QPushButton(tr("Default Push Button"));
- defaultPushButton->setDefault(true);
-
- togglePushButton = new QPushButton(tr("Toggle Push Button"));
- togglePushButton->setCheckable(true);
- togglePushButton->setChecked(true);
-
- flatPushButton = new QPushButton(tr("Flat Push Button"));
- flatPushButton->setFlat(true);
-
- QVBoxLayout *layout = new QVBoxLayout;
- layout->addWidget(defaultPushButton);
- layout->addWidget(togglePushButton);
- layout->addWidget(flatPushButton);
- layout->addStretch(1);
- topRightGroupBox->setLayout(layout);
-}
-
-void WidgetGallery::createBottomLeftTabWidget()
-{
- bottomLeftTabWidget = new QTabWidget;
- bottomLeftTabWidget->setSizePolicy(QSizePolicy::Preferred,
- QSizePolicy::Ignored);
-
- QWidget *tab1 = new QWidget;
- tableWidget = new QTableWidget(10, 10);
-
- QHBoxLayout *tab1hbox = new QHBoxLayout;
- tab1hbox->setContentsMargins(5,5, 5, 5);
- tab1hbox->addWidget(tableWidget);
- tab1->setLayout(tab1hbox);
-
- QWidget *tab2 = new QWidget;
- textEdit = new QTextEdit;
-
- textEdit->setPlainText(tr("Twinkle, twinkle, little star,\n"
- "How I wonder what you are.\n"
- "Up above the world so high,\n"
- "Like a diamond in the sky.\n"
- "Twinkle, twinkle, little star,\n"
- "How I wonder what you are!\n"));
-
- QHBoxLayout *tab2hbox = new QHBoxLayout;
- tab2hbox->setContentsMargins(5, 5, 5, 5);
- tab2hbox->addWidget(textEdit);
- tab2->setLayout(tab2hbox);
-
- bottomLeftTabWidget->addTab(tab1, tr("&Table"));
- bottomLeftTabWidget->addTab(tab2, tr("Text &Edit"));
-}
-
-void WidgetGallery::createBottomRightGroupBox()
-{
- bottomRightGroupBox = new QGroupBox(tr("Group 3"));
- bottomRightGroupBox->setCheckable(true);
- bottomRightGroupBox->setChecked(true);
-
- lineEdit = new QLineEdit("s3cRe7");
- lineEdit->setEchoMode(QLineEdit::Password);
-
- spinBox = new QSpinBox(bottomRightGroupBox);
- spinBox->setValue(50);
-
- dateTimeEdit = new QDateTimeEdit(bottomRightGroupBox);
- dateTimeEdit->setDateTime(QDateTime::currentDateTime());
-
- slider = new QSlider(Qt::Horizontal, bottomRightGroupBox);
- slider->setValue(40);
-
- scrollBar = new QScrollBar(Qt::Horizontal, bottomRightGroupBox);
- scrollBar->setValue(60);
-
- dial = new QDial(bottomRightGroupBox);
- dial->setValue(30);
- dial->setNotchesVisible(true);
-
- QGridLayout *layout = new QGridLayout;
- layout->addWidget(lineEdit, 0, 0, 1, 2);
- layout->addWidget(spinBox, 1, 0, 1, 2);
- layout->addWidget(dateTimeEdit, 2, 0, 1, 2);
- layout->addWidget(slider, 3, 0);
- layout->addWidget(scrollBar, 4, 0);
- layout->addWidget(dial, 3, 1, 2, 1);
- layout->setRowStretch(5, 1);
- bottomRightGroupBox->setLayout(layout);
-}
-
-//! [13]
-void WidgetGallery::createProgressBar()
-{
- progressBar = new QProgressBar;
- progressBar->setRange(0, 10000);
- progressBar->setValue(0);
-
- QTimer *timer = new QTimer(this);
- connect(timer, &QTimer::timeout, this, &WidgetGallery::advanceProgressBar);
- timer->start(1000);
-}
-//! [13]
diff --git a/examples/widgets/widgets/styles/widgetgallery.h b/examples/widgets/widgets/styles/widgetgallery.h
deleted file mode 100644
index f4c43e7b4f..0000000000
--- a/examples/widgets/widgets/styles/widgetgallery.h
+++ /dev/null
@@ -1,86 +0,0 @@
-// Copyright (C) 2016 The Qt Company Ltd.
-// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
-
-#ifndef WIDGETGALLERY_H
-#define WIDGETGALLERY_H
-
-#include <QDialog>
-
-QT_BEGIN_NAMESPACE
-class QCheckBox;
-class QComboBox;
-class QDateTimeEdit;
-class QDial;
-class QGroupBox;
-class QLabel;
-class QLineEdit;
-class QProgressBar;
-class QPushButton;
-class QRadioButton;
-class QScrollBar;
-class QSlider;
-class QSpinBox;
-class QTabWidget;
-class QTableWidget;
-class QTextEdit;
-QT_END_NAMESPACE
-
-//! [0]
-class WidgetGallery : public QDialog
-{
- Q_OBJECT
-
-public:
- WidgetGallery(QWidget *parent = nullptr);
-
-protected:
- void changeEvent(QEvent *) override;
-
-private slots:
- void changeStyle(const QString &styleName);
- void styleChanged();
- void changePalette();
- void advanceProgressBar();
-
-private:
- void createTopLeftGroupBox();
- void createTopRightGroupBox();
- void createBottomLeftTabWidget();
- void createBottomRightGroupBox();
- void createProgressBar();
-
- QLabel *styleLabel;
- QComboBox *styleComboBox;
- QCheckBox *useStylePaletteCheckBox;
- QCheckBox *disableWidgetsCheckBox;
-//! [0]
-
- QGroupBox *topLeftGroupBox;
- QRadioButton *radioButton1;
- QRadioButton *radioButton2;
- QRadioButton *radioButton3;
- QCheckBox *checkBox;
-
- QGroupBox *topRightGroupBox;
- QPushButton *defaultPushButton;
- QPushButton *togglePushButton;
- QPushButton *flatPushButton;
-
- QTabWidget *bottomLeftTabWidget;
- QTableWidget *tableWidget;
- QTextEdit *textEdit;
-
- QGroupBox *bottomRightGroupBox;
- QLineEdit *lineEdit;
- QSpinBox *spinBox;
- QDateTimeEdit *dateTimeEdit;
- QSlider *slider;
- QScrollBar *scrollBar;
- QDial *dial;
-
- QProgressBar *progressBar;
-//! [1]
-};
-//! [1]
-
-#endif
diff --git a/examples/widgets/widgets/widgets.pro b/examples/widgets/widgets/widgets.pro
index 45d9e662df..dbfffab4c4 100644
--- a/examples/widgets/widgets/widgets.pro
+++ b/examples/widgets/widgets/widgets.pro
@@ -8,7 +8,6 @@ SUBDIRS = analogclock \
shapedclock \
sliders \
spinboxes \
- styles \
tablet \
tetrix \
tooltips \