OpenCoverage

qstyle.cpp

Absolute File Name:/home/qt/qt5_coco/qt5/qtbase/src/widgets/styles/qstyle.cpp
Source codeSwitch to Preprocessed file
LineSourceCount
1/****************************************************************************-
2**-
3** Copyright (C) 2016 The Qt Company Ltd.-
4** Contact: https://www.qt.io/licensing/-
5**-
6** This file is part of the QtWidgets module of the Qt Toolkit.-
7**-
8** $QT_BEGIN_LICENSE:LGPL$-
9** Commercial License Usage-
10** Licensees holding valid commercial Qt licenses may use this file in-
11** accordance with the commercial license agreement provided with the-
12** Software or, alternatively, in accordance with the terms contained in-
13** a written agreement between you and The Qt Company. For licensing terms-
14** and conditions see https://www.qt.io/terms-conditions. For further-
15** information use the contact form at https://www.qt.io/contact-us.-
16**-
17** GNU Lesser General Public License Usage-
18** Alternatively, this file may be used under the terms of the GNU Lesser-
19** General Public License version 3 as published by the Free Software-
20** Foundation and appearing in the file LICENSE.LGPL3 included in the-
21** packaging of this file. Please review the following information to-
22** ensure the GNU Lesser General Public License version 3 requirements-
23** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.-
24**-
25** GNU General Public License Usage-
26** Alternatively, this file may be used under the terms of the GNU-
27** General Public License version 2.0 or (at your option) the GNU General-
28** Public license version 3 or any later version approved by the KDE Free-
29** Qt Foundation. The licenses are as published by the Free Software-
30** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3-
31** included in the packaging of this file. Please review the following-
32** information to ensure the GNU General Public License requirements will-
33** be met: https://www.gnu.org/licenses/gpl-2.0.html and-
34** https://www.gnu.org/licenses/gpl-3.0.html.-
35**-
36** $QT_END_LICENSE$-
37**-
38****************************************************************************/-
39-
40#include "qstyle.h"-
41#include "qapplication.h"-
42#include "qpainter.h"-
43#include "qwidget.h"-
44#include "qbitmap.h"-
45#include "qpixmapcache.h"-
46#include "qstyleoption.h"-
47#include "private/qstyle_p.h"-
48#include "private/qguiapplication_p.h"-
49#ifndef QT_NO_DEBUG-
50#include "qdebug.h"-
51#endif-
52-
53#include <limits.h>-
54#include <algorithm>-
55-
56QT_BEGIN_NAMESPACE-
57-
58static const int MaxBits = 8 * sizeof(QSizePolicy::ControlType);-
59-
60static int unpackControlTypes(QSizePolicy::ControlTypes controls, QSizePolicy::ControlType *array)-
61{-
62 if (!controls)
!controlsDescription
TRUEnever evaluated
FALSEnever evaluated
0
63 return 0;
never executed: return 0;
0
64-
65 // optimization: exactly one bit is set-
66 if ((controls & (controls - 1)) == 0) {
(controls & (c...ols - 1)) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
67 array[0] = QSizePolicy::ControlType(uint(controls));-
68 return 1;
never executed: return 1;
0
69 }-
70-
71 int count = 0;-
72 for (int i = 0; i < MaxBits; ++i) {
i < MaxBitsDescription
TRUEnever evaluated
FALSEnever evaluated
0
73 if (uint bit = (controls & (0x1 << i)))
uint bit = (co... & (0x1 << i))Description
TRUEnever evaluated
FALSEnever evaluated
0
74 array[count++] = QSizePolicy::ControlType(bit);
never executed: array[count++] = QSizePolicy::ControlType(bit);
0
75 }
never executed: end of block
0
76 return count;
never executed: return count;
0
77}-
78-
79/*!-
80 \page qwidget-styling.html-
81 \title Styling-
82-
83 Qt's built-in widgets use the QStyle class to perform nearly all-
84 of their drawing. QStyle is an abstract base class that-
85 encapsulates the look and feel of a GUI, and can be used to make-
86 the widgets look exactly like the equivalent native widgets or to-
87 give the widgets a custom look.-
88-
89 Qt provides a set of QStyle subclasses that emulate the native-
90 look of the different platforms supported by Qt (QWindowsStyle,-
91 QMacStyle, etc.). These styles are built into the-
92 Qt GUI module, other styles can be made available using Qt's-
93 plugin mechansim.-
94-
95 Most functions for drawing style elements take four arguments:-
96-
97 \list-
98 \li an enum value specifying which graphical element to draw-
99 \li a QStyleOption object specifying how and where to render that element-
100 \li a QPainter object that should be used to draw the element-
101 \li a QWidget object on which the drawing is performed (optional)-
102 \endlist-
103-
104 The style gets all the information it needs to render the-
105 graphical element from the QStyleOption class. The widget is-
106 passed as the last argument in case the style needs it to perform-
107 special effects (such as animated default buttons on \macos),-
108 but it isn't mandatory. In fact, QStyle can be used to draw on any-
109 paint device (not just widgets), in which case the widget argument-
110 is a zero pointer.-
111-
112 \image paintsystem-stylepainter.png-
113-
114 The paint system also provides the QStylePainter class inheriting-
115 from QPainter. QStylePainter is a convenience class for drawing-
116 QStyle elements inside a widget, and extends QPainter with a set-
117 of high-level drawing functions implemented on top of QStyle's-
118 API. The advantage of using QStylePainter is that the parameter-
119 lists get considerably shorter.-
120-
121 \table 100%-
122 \row-
123 \li \inlineimage paintsystem-icon.png-
124 \li \b QIcon-
125-
126 The QIcon class provides scalable icons in different modes and states.-
127-
128 QIcon can generate pixmaps reflecting an icon's state, mode and-
129 size. These pixmaps are generated from the set of pixmaps-
130 made available to the icon, and are used by Qt widgets to show an-
131 icon representing a particular action.-
132-
133 The rendering of a QIcon object is handled by the QIconEngine-
134 class. Each icon has a corresponding icon engine that is-
135 responsible for drawing the icon with a requested size, mode and-
136 state.-
137-
138 \endtable-
139-
140 For more information about widget styling and appearance, see the-
141 \l{Styles and Style Aware Widgets}.-
142*/-
143-
144-
145/*!-
146 \class QStyle-
147 \brief The QStyle class is an abstract base class that encapsulates the look and feel of a GUI.-
148-
149 \ingroup appearance-
150 \inmodule QtWidgets-
151-
152 Qt contains a set of QStyle subclasses that emulate the styles of-
153 the different platforms supported by Qt (QWindowsStyle,-
154 QMacStyle etc.). By default, these styles are built-
155 into the Qt GUI module. Styles can also be made available as-
156 plugins.-
157-
158 Qt's built-in widgets use QStyle to perform nearly all of their-
159 drawing, ensuring that they look exactly like the equivalent-
160 native widgets. The diagram below shows a QComboBox in nine-
161 different styles.-
162-
163 \image qstyle-comboboxes.png Nine combo boxes-
164-
165 Topics:-
166-
167 \tableofcontents-
168-
169 \section1 Setting a Style-
170-
171 The style of the entire application can be set using the-
172 QApplication::setStyle() function. It can also be specified by the-
173 user of the application, using the \c -style command-line option:-
174-
175 \snippet code/src_gui_styles_qstyle.cpp 0-
176-
177 If no style is specified, Qt will choose the most appropriate-
178 style for the user's platform or desktop environment.-
179-
180 A style can also be set on an individual widget using the-
181 QWidget::setStyle() function.-
182-
183 \section1 Developing Style-Aware Custom Widgets-
184-
185 If you are developing custom widgets and want them to look good on-
186 all platforms, you can use QStyle functions to perform parts of-
187 the widget drawing, such as drawItemText(), drawItemPixmap(),-
188 drawPrimitive(), drawControl(), and drawComplexControl().-
189-
190 Most QStyle draw functions take four arguments:-
191 \list-
192 \li an enum value specifying which graphical element to draw-
193 \li a QStyleOption specifying how and where to render that element-
194 \li a QPainter that should be used to draw the element-
195 \li a QWidget on which the drawing is performed (optional)-
196 \endlist-
197-
198 For example, if you want to draw a focus rectangle on your-
199 widget, you can write:-
200-
201 \snippet styles/styles.cpp 1-
202-
203 QStyle gets all the information it needs to render the graphical-
204 element from QStyleOption. The widget is passed as the last-
205 argument in case the style needs it to perform special effects-
206 (such as animated default buttons on \macos), but it isn't-
207 mandatory. In fact, you can use QStyle to draw on any paint-
208 device, not just widgets, by setting the QPainter properly.-
209-
210 QStyleOption has various subclasses for the various types of-
211 graphical elements that can be drawn. For example,-
212 PE_FrameFocusRect expects a QStyleOptionFocusRect argument.-
213-
214 To ensure that drawing operations are as fast as possible,-
215 QStyleOption and its subclasses have public data members. See the-
216 QStyleOption class documentation for details on how to use it.-
217-
218 For convenience, Qt provides the QStylePainter class, which-
219 combines a QStyle, a QPainter, and a QWidget. This makes it-
220 possible to write-
221-
222 \snippet styles/styles.cpp 5-
223 \dots-
224 \snippet styles/styles.cpp 7-
225-
226 instead of-
227-
228 \snippet styles/styles.cpp 2-
229 \dots-
230 \snippet styles/styles.cpp 3-
231-
232 \section1 Creating a Custom Style-
233-
234 You can create a custom look and feel for your application by-
235 creating a custom style. There are two approaches to creating a-
236 custom style. In the static approach, you either choose an-
237 existing QStyle class, subclass it, and reimplement virtual-
238 functions to provide the custom behavior, or you create an entire-
239 QStyle class from scratch. In the dynamic approach, you modify the-
240 behavior of your system style at runtime. The static approach is-
241 described below. The dynamic approach is described in QProxyStyle.-
242-
243 The first step in the static approach is to pick one of the styles-
244 provided by Qt from which you will build your custom style. Your-
245 choice of QStyle class will depend on which style resembles your-
246 desired style the most. The most general class that you can use as-
247 a base is QCommonStyle (not QStyle). This is because Qt requires-
248 its styles to be \l{QCommonStyle}s.-
249-
250 Depending on which parts of the base style you want to change,-
251 you must reimplement the functions that are used to draw those-
252 parts of the interface. To illustrate this, we will modify the-
253 look of the spin box arrows drawn by QWindowsStyle. The arrows-
254 are \e{primitive elements} that are drawn by the drawPrimitive()-
255 function, so we need to reimplement that function. We need the-
256 following class declaration:-
257-
258 \snippet customstyle/customstyle.h 0-
259-
260 To draw its up and down arrows, QSpinBox uses the-
261 PE_IndicatorSpinUp and PE_IndicatorSpinDown primitive elements.-
262 Here's how to reimplement the drawPrimitive() function to draw-
263 them differently:-
264-
265 \snippet customstyle/customstyle.cpp 2-
266 \snippet customstyle/customstyle.cpp 3-
267 \snippet customstyle/customstyle.cpp 4-
268-
269 Notice that we don't use the \c widget argument, except to pass it-
270 on to the QWindowStyle::drawPrimitive() function. As mentioned-
271 earlier, the information about what is to be drawn and how it-
272 should be drawn is specified by a QStyleOption object, so there is-
273 no need to ask the widget.-
274-
275 If you need to use the \c widget argument to obtain additional-
276 information, be careful to ensure that it isn't 0 and that it is-
277 of the correct type before using it. For example:-
278-
279 \snippet customstyle/customstyle.cpp 0-
280 \dots-
281 \snippet customstyle/customstyle.cpp 1-
282-
283 When implementing a custom style, you cannot assume that the-
284 widget is a QSpinBox just because the enum value is called-
285 PE_IndicatorSpinUp or PE_IndicatorSpinDown.-
286-
287 The documentation for the \l{widgets/styles}{Styles} example-
288 covers this topic in more detail.-
289-
290 \warning Qt style sheets are currently not supported for custom QStyle-
291 subclasses. We plan to address this in some future release.-
292-
293-
294 \section1 Using a Custom Style-
295-
296 There are several ways of using a custom style in a Qt-
297 application. The simplest way is to pass the custom style to the-
298 QApplication::setStyle() static function before creating the-
299 QApplication object:-
300-
301 \snippet customstyle/main.cpp using a custom style-
302-
303 You can call QApplication::setStyle() at any time, but by calling-
304 it before the constructor, you ensure that the user's preference,-
305 set using the \c -style command-line option, is respected.-
306-
307 You may want to make your custom style available for use in other-
308 applications, which may not be yours and hence not available for-
309 you to recompile. The Qt Plugin system makes it possible to create-
310 styles as plugins. Styles created as plugins are loaded as shared-
311 objects at runtime by Qt itself. Please refer to the \l{How to Create Qt Plugins}{Qt Plugin}-
312 documentation for more information on how to go about creating a style-
313 plugin.-
314-
315 Compile your plugin and put it into Qt's \c plugins/styles-
316 directory. We now have a pluggable style that Qt can load-
317 automatically. To use your new style with existing applications,-
318 simply start the application with the following argument:-
319-
320 \snippet code/src_gui_styles_qstyle.cpp 1-
321-
322 The application will use the look and feel from the custom style you-
323 implemented.-
324-
325 \section1 Right-to-Left Desktops-
326-
327 Languages written from right to left (such as Arabic and Hebrew)-
328 usually also mirror the whole layout of widgets, and require the-
329 light to come from the screen's top-right corner instead of-
330 top-left.-
331-
332 If you create a custom style, you should take special care when-
333 drawing asymmetric elements to make sure that they also look-
334 correct in a mirrored layout. An easy way to test your styles is-
335 to run applications with the \c -reverse command-line option or-
336 to call QApplication::setLayoutDirection() in your \c main()-
337 function.-
338-
339 Here are some things to keep in mind when making a style work well in a-
340 right-to-left environment:-
341-
342 \list-
343 \li subControlRect() and subElementRect() return rectangles in screen coordinates-
344 \li QStyleOption::direction indicates in which direction the item should be drawn in-
345 \li If a style is not right-to-left aware it will display items as if it were left-to-right-
346 \li visualRect(), visualPos(), and visualAlignment() are helpful functions that will-
347 translate from logical to screen representations.-
348 \li alignedRect() will return a logical rect aligned for the current direction-
349 \endlist-
350-
351 \section1 Styles in Item Views-
352-
353 The painting of items in views is performed by a delegate. Qt's-
354 default delegate, QStyledItemDelegate, is also used for calculating bounding-
355 rectangles of items, and their sub-elements for the various kind-
356 of item \l{Qt::ItemDataRole}{data roles}-
357 QStyledItemDelegate supports. See the QStyledItemDelegate class-
358 description to find out which datatypes and roles are supported. You-
359 can read more about item data roles in \l{Model/View Programming}.-
360-
361 When QStyledItemDelegate paints its items, it draws-
362 CE_ItemViewItem, and calculates their size with CT_ItemViewItem.-
363 Note also that it uses SE_ItemViewItemText to set the size of-
364 editors. When implementing a style to customize drawing of item-
365 views, you need to check the implementation of QCommonStyle (and-
366 any other subclasses from which your style-
367 inherits). This way, you find out which and how-
368 other style elements are painted, and you can then reimplement the-
369 painting of elements that should be drawn differently.-
370-
371 We include a small example where we customize the drawing of item-
372 backgrounds.-
373-
374 \snippet customviewstyle.cpp 0-
375-
376 The primitive element PE_PanelItemViewItem is responsible for-
377 painting the background of items, and is called from-
378 \l{QCommonStyle}'s implementation of CE_ItemViewItem.-
379-
380 To add support for drawing of new datatypes and item data roles,-
381 it is necessary to create a custom delegate. But if you only-
382 need to support the datatypes implemented by the default-
383 delegate, a custom style does not need an accompanying-
384 delegate. The QStyledItemDelegate class description gives more-
385 information on custom delegates.-
386-
387 The drawing of item view headers is also done by the style, giving-
388 control over size of header items and row and column sizes.-
389-
390 \sa QStyleOption, QStylePainter, {Styles Example},-
391 {Styles and Style Aware Widgets}, QStyledItemDelegate, {Styling}-
392*/-
393-
394/*!-
395 Constructs a style object.-
396*/-
397QStyle::QStyle()-
398 : QObject(*new QStylePrivate)-
399{-
400 Q_D(QStyle);-
401 d->proxyStyle = this;-
402}
never executed: end of block
0
403-
404/*!-
405 \internal-
406-
407 Constructs a style object.-
408*/-
409QStyle::QStyle(QStylePrivate &dd)-
410 : QObject(dd)-
411{-
412 Q_D(QStyle);-
413 d->proxyStyle = this;-
414}
never executed: end of block
0
415-
416/*!-
417 Destroys the style object.-
418*/-
419QStyle::~QStyle()-
420{-
421}-
422-
423/*!-
424 Initializes the appearance of the given \a widget.-
425-
426 This function is called for every widget at some point after it-
427 has been fully created but just \e before it is shown for the very-
428 first time.-
429-
430 Note that the default implementation does nothing. Reasonable-
431 actions in this function might be to call the-
432 QWidget::setBackgroundMode() function for the widget. Do not use-
433 the function to set, for example, the geometry. Reimplementing-
434 this function provides a back-door through which the appearance-
435 of a widget can be changed, but with Qt's style engine it is-
436 rarely necessary to implement this function; reimplement-
437 drawItemPixmap(), drawItemText(), drawPrimitive(), etc. instead.-
438-
439 The QWidget::inherits() function may provide enough information to-
440 allow class-specific customizations. But because new QStyle-
441 subclasses are expected to work reasonably with all current and \e-
442 future widgets, limited use of hard-coded customization is-
443 recommended.-
444-
445 \sa unpolish()-
446*/-
447void QStyle::polish(QWidget * /* widget */)-
448{-
449}-
450-
451/*!-
452 Uninitialize the given \a{widget}'s appearance.-
453-
454 This function is the counterpart to polish(). It is called for-
455 every polished widget whenever the style is dynamically changed;-
456 the former style has to unpolish its settings before the new style-
457 can polish them again.-
458-
459 Note that unpolish() will only be called if the widget is-
460 destroyed. This can cause problems in some cases, e.g, if you-
461 remove a widget from the UI, cache it, and then reinsert it after-
462 the style has changed; some of Qt's classes cache their widgets.-
463-
464 \sa polish()-
465*/-
466void QStyle::unpolish(QWidget * /* widget */)-
467{-
468}-
469-
470/*!-
471 \fn void QStyle::polish(QApplication * application)-
472 \overload-
473-
474 Late initialization of the given \a application object.-
475*/-
476void QStyle::polish(QApplication * /* app */)-
477{-
478}-
479-
480/*!-
481 \fn void QStyle::unpolish(QApplication * application)-
482 \overload-
483-
484 Uninitialize the given \a application.-
485*/-
486void QStyle::unpolish(QApplication * /* app */)-
487{-
488}-
489-
490/*!-
491 \fn void QStyle::polish(QPalette & palette)-
492 \overload-
493-
494 Changes the \a palette according to style specific requirements-
495 for color palettes (if any).-
496-
497 \sa QPalette, QApplication::setPalette()-
498*/-
499void QStyle::polish(QPalette & /* pal */)-
500{-
501}-
502-
503/*!-
504 \fn QRect QStyle::itemTextRect(const QFontMetrics &metrics, const QRect &rectangle, int alignment, bool enabled, const QString &text) const-
505-
506 Returns the area within the given \a rectangle in which to draw-
507 the provided \a text according to the specified font \a metrics-
508 and \a alignment. The \a enabled parameter indicates whether or-
509 not the associated item is enabled.-
510-
511 If the given \a rectangle is larger than the area needed to render-
512 the \a text, the rectangle that is returned will be offset within-
513 \a rectangle according to the specified \a alignment. For-
514 example, if \a alignment is Qt::AlignCenter, the returned-
515 rectangle will be centered within \a rectangle. If the given \a-
516 rectangle is smaller than the area needed, the returned rectangle-
517 will be the smallest rectangle large enough to render the \a text.-
518-
519 \sa Qt::Alignment-
520*/-
521QRect QStyle::itemTextRect(const QFontMetrics &metrics, const QRect &rect, int alignment, bool enabled,-
522 const QString &text) const-
523{-
524 QRect result;-
525 int x, y, w, h;-
526 rect.getRect(&x, &y, &w, &h);-
527 if (!text.isEmpty()) {
!text.isEmpty()Description
TRUEnever evaluated
FALSEnever evaluated
0
528 result = metrics.boundingRect(x, y, w, h, alignment, text);-
529 if (!enabled && proxy()->styleHint(SH_EtchDisabledText)) {
!enabledDescription
TRUEnever evaluated
FALSEnever evaluated
proxy()->style...hDisabledText)Description
TRUEnever evaluated
FALSEnever evaluated
0
530 result.setWidth(result.width()+1);-
531 result.setHeight(result.height()+1);-
532 }
never executed: end of block
0
533 } else {
never executed: end of block
0
534 result = QRect(x, y, w, h);-
535 }
never executed: end of block
0
536 return result;
never executed: return result;
0
537}-
538-
539/*!-
540 \fn QRect QStyle::itemPixmapRect(const QRect &rectangle, int alignment, const QPixmap &pixmap) const-
541-
542 Returns the area within the given \a rectangle in which to draw-
543 the specified \a pixmap according to the defined \a alignment.-
544*/-
545QRect QStyle::itemPixmapRect(const QRect &rect, int alignment, const QPixmap &pixmap) const-
546{-
547 QRect result;-
548 int x, y, w, h;-
549 rect.getRect(&x, &y, &w, &h);-
550-
551 const int pixmapWidth = pixmap.width()/pixmap.devicePixelRatio();-
552 const int pixmapHeight = pixmap.height()/pixmap.devicePixelRatio();-
553-
554 if ((alignment & Qt::AlignVCenter) == Qt::AlignVCenter)
(alignment & Q...::AlignVCenterDescription
TRUEnever evaluated
FALSEnever evaluated
0
555 y += h/2 - pixmapHeight/2;
never executed: y += h/2 - pixmapHeight/2;
0
556 else if ((alignment & Qt::AlignBottom) == Qt::AlignBottom)
(alignment & Q...t::AlignBottomDescription
TRUEnever evaluated
FALSEnever evaluated
0
557 y += h - pixmapHeight;
never executed: y += h - pixmapHeight;
0
558 if ((alignment & Qt::AlignRight) == Qt::AlignRight)
(alignment & Q...Qt::AlignRightDescription
TRUEnever evaluated
FALSEnever evaluated
0
559 x += w - pixmapWidth;
never executed: x += w - pixmapWidth;
0
560 else if ((alignment & Qt::AlignHCenter) == Qt::AlignHCenter)
(alignment & Q...::AlignHCenterDescription
TRUEnever evaluated
FALSEnever evaluated
0
561 x += w/2 - pixmapWidth/2;
never executed: x += w/2 - pixmapWidth/2;
0
562 else if ((alignment & Qt::AlignLeft) != Qt::AlignLeft && QApplication::isRightToLeft())
(alignment & Q... Qt::AlignLeftDescription
TRUEnever evaluated
FALSEnever evaluated
QApplication::isRightToLeft()Description
TRUEnever evaluated
FALSEnever evaluated
0
563 x += w - pixmapWidth;
never executed: x += w - pixmapWidth;
0
564 result = QRect(x, y, pixmapWidth, pixmapHeight);-
565 return result;
never executed: return result;
0
566}-
567-
568/*!-
569 \fn void QStyle::drawItemText(QPainter *painter, const QRect &rectangle, int alignment, const QPalette &palette, bool enabled, const QString& text, QPalette::ColorRole textRole) const-
570-
571 Draws the given \a text in the specified \a rectangle using the-
572 provided \a painter and \a palette.-
573-
574 The text is drawn using the painter's pen, and aligned and wrapped-
575 according to the specified \a alignment. If an explicit \a-
576 textRole is specified, the text is drawn using the \a palette's-
577 color for the given role. The \a enabled parameter indicates-
578 whether or not the item is enabled; when reimplementing this-
579 function, the \a enabled parameter should influence how the item is-
580 drawn.-
581-
582 \sa Qt::Alignment, drawItemPixmap()-
583*/-
584void QStyle::drawItemText(QPainter *painter, const QRect &rect, int alignment, const QPalette &pal,-
585 bool enabled, const QString& text, QPalette::ColorRole textRole) const-
586{-
587 if (text.isEmpty())
text.isEmpty()Description
TRUEnever evaluated
FALSEnever evaluated
0
588 return;
never executed: return;
0
589 QPen savedPen;-
590 if (textRole != QPalette::NoRole) {
textRole != QPalette::NoRoleDescription
TRUEnever evaluated
FALSEnever evaluated
0
591 savedPen = painter->pen();-
592 painter->setPen(QPen(pal.brush(textRole), savedPen.widthF()));-
593 }
never executed: end of block
0
594 if (!enabled) {
!enabledDescription
TRUEnever evaluated
FALSEnever evaluated
0
595 if (proxy()->styleHint(SH_DitherDisabledText)) {
proxy()->style...rDisabledText)Description
TRUEnever evaluated
FALSEnever evaluated
0
596 QRect br;-
597 painter->drawText(rect, alignment, text, &br);-
598 painter->fillRect(br, QBrush(painter->background().color(), Qt::Dense5Pattern));-
599 return;
never executed: return;
0
600 } else if (proxy()->styleHint(SH_EtchDisabledText)) {
proxy()->style...hDisabledText)Description
TRUEnever evaluated
FALSEnever evaluated
0
601 QPen pen = painter->pen();-
602 painter->setPen(pal.light().color());-
603 painter->drawText(rect.adjusted(1, 1, 1, 1), alignment, text);-
604 painter->setPen(pen);-
605 }
never executed: end of block
0
606 }
never executed: end of block
0
607 painter->drawText(rect, alignment, text);-
608 if (textRole != QPalette::NoRole)
textRole != QPalette::NoRoleDescription
TRUEnever evaluated
FALSEnever evaluated
0
609 painter->setPen(savedPen);
never executed: painter->setPen(savedPen);
0
610}
never executed: end of block
0
611-
612/*!-
613 \fn void QStyle::drawItemPixmap(QPainter *painter, const QRect &rectangle, int alignment,-
614 const QPixmap &pixmap) const-
615-
616 Draws the given \a pixmap in the specified \a rectangle, according-
617 to the specified \a alignment, using the provided \a painter.-
618-
619 \sa drawItemText()-
620*/-
621-
622void QStyle::drawItemPixmap(QPainter *painter, const QRect &rect, int alignment,-
623 const QPixmap &pixmap) const-
624{-
625 qreal scale = pixmap.devicePixelRatio();-
626 QRect aligned = alignedRect(QApplication::layoutDirection(), QFlag(alignment), pixmap.size() / scale, rect);-
627 QRect inter = aligned.intersected(rect);-
628-
629 painter->drawPixmap(inter.x(), inter.y(), pixmap, inter.x() - aligned.x(), inter.y() - aligned.y(), inter.width() * scale, inter.height() *scale);-
630}
never executed: end of block
0
631-
632/*!-
633 \enum QStyle::PrimitiveElement-
634-
635 This enum describes the various primitive elements. A-
636 primitive element is a common GUI element, such as a checkbox-
637 indicator or button bevel.-
638-
639 \omitvalue PE_IndicatorViewItemCheck-
640 \value PE_FrameStatusBar Obsolete. Use PE_FrameStatusBarItem instead.-
641-
642 \value PE_PanelButtonCommand Button used to initiate an action, for-
643 example, a QPushButton.-
644-
645 \value PE_FrameDefaultButton This frame around a default button, e.g. in a dialog.-
646 \value PE_PanelButtonBevel Generic panel with a button bevel.-
647 \value PE_PanelButtonTool Panel for a Tool button, used with QToolButton.-
648 \value PE_PanelLineEdit Panel for a QLineEdit.-
649 \value PE_IndicatorButtonDropDown Indicator for a drop down button, for example, a tool-
650 button that displays a menu.-
651-
652 \value PE_FrameFocusRect Generic focus indicator.-
653-
654 \value PE_IndicatorArrowUp Generic Up arrow.-
655 \value PE_IndicatorArrowDown Generic Down arrow.-
656 \value PE_IndicatorArrowRight Generic Right arrow.-
657 \value PE_IndicatorArrowLeft Generic Left arrow.-
658-
659 \value PE_IndicatorSpinUp Up symbol for a spin widget, for example a QSpinBox.-
660 \value PE_IndicatorSpinDown Down symbol for a spin widget.-
661 \value PE_IndicatorSpinPlus Increase symbol for a spin widget.-
662 \value PE_IndicatorSpinMinus Decrease symbol for a spin widget.-
663-
664 \value PE_IndicatorItemViewItemCheck On/off indicator for a view item.-
665-
666 \value PE_IndicatorCheckBox On/off indicator, for example, a QCheckBox.-
667 \value PE_IndicatorRadioButton Exclusive on/off indicator, for example, a QRadioButton.-
668-
669 \value PE_IndicatorDockWidgetResizeHandle Resize handle for dock windows.-
670-
671 \value PE_Frame Generic frame-
672 \value PE_FrameMenu Frame for popup windows/menus; see also QMenu.-
673 \value PE_PanelMenuBar Panel for menu bars.-
674 \value PE_PanelScrollAreaCorner Panel at the bottom-right (or-
675 bottom-left) corner of a scroll area.-
676-
677 \value PE_FrameDockWidget Panel frame for dock windows and toolbars.-
678 \value PE_FrameTabWidget Frame for tab widgets.-
679 \value PE_FrameLineEdit Panel frame for line edits.-
680 \value PE_FrameGroupBox Panel frame around group boxes.-
681 \value PE_FrameButtonBevel Panel frame for a button bevel.-
682 \value PE_FrameButtonTool Panel frame for a tool button.-
683-
684 \value PE_IndicatorHeaderArrow Arrow used to indicate sorting on a list or table-
685 header.-
686 \value PE_FrameStatusBarItem Frame for an item of a status bar; see also QStatusBar.-
687-
688 \value PE_FrameWindow Frame around a MDI window or a docking window.-
689-
690 \value PE_IndicatorMenuCheckMark Check mark used in a menu.-
691-
692 \value PE_IndicatorProgressChunk Section of a progress bar indicator; see also QProgressBar.-
693-
694 \value PE_IndicatorBranch Lines used to represent the branch of a tree in a tree view.-
695 \value PE_IndicatorToolBarHandle The handle of a toolbar.-
696 \value PE_IndicatorToolBarSeparator The separator in a toolbar.-
697 \value PE_PanelToolBar The panel for a toolbar.-
698 \value PE_PanelTipLabel The panel for a tip label.-
699 \value PE_FrameTabBarBase The frame that is drawn for a tab bar, ususally drawn for a tab bar that isn't part of a tab widget.-
700 \value PE_IndicatorTabTear Deprecated. Use \l{PE_IndicatorTabTearLeft} instead.-
701 \value PE_IndicatorTabTearLeft An indicator that a tab is partially scrolled out on the left side of the visible tab bar when there are many tabs.-
702 \value PE_IndicatorTabTearRight An indicator that a tab is partially scrolled out on the right side of the visible tab bar when there are many tabs.-
703 \value PE_IndicatorColumnViewArrow An arrow in a QColumnView.-
704-
705 \value PE_Widget A plain QWidget.-
706-
707 \value PE_CustomBase Base value for custom primitive elements.-
708 All values above this are reserved for custom use. Custom values-
709 must be greater than this value.-
710-
711 \value PE_IndicatorItemViewItemDrop An indicator that is drawn to show where an item in an item view is about to be dropped-
712 during a drag-and-drop operation in an item view.-
713 \value PE_PanelItemViewItem The background for an item in an item view.-
714 \value PE_PanelItemViewRow The background of a row in an item view.-
715-
716 \value PE_PanelStatusBar The panel for a status bar.-
717-
718 \value PE_IndicatorTabClose The close button on a tab bar.-
719 \value PE_PanelMenu The panel for a menu.-
720-
721 \sa drawPrimitive()-
722*/-
723-
724-
725/*!-
726 \enum QStyle::StateFlag-
727-
728 This enum describes flags that are used when drawing primitive-
729 elements.-
730-
731 Note that not all primitives use all of these flags, and that the-
732 flags may mean different things to different items.-
733-
734 \value State_None Indicates that the widget does not have a state.-
735 \value State_Active Indicates that the widget is active.-
736 \value State_AutoRaise Used to indicate if auto-raise appearance should be used on a tool button.-
737 \value State_Children Used to indicate if an item view branch has children.-
738 \value State_DownArrow Used to indicate if a down arrow should be visible on the widget.-
739 \value State_Editing Used to indicate if an editor is opened on the widget.-
740 \value State_Enabled Used to indicate if the widget is enabled.-
741 \value State_HasEditFocus Used to indicate if the widget currently has edit focus.-
742 \value State_HasFocus Used to indicate if the widget has focus.-
743 \value State_Horizontal Used to indicate if the widget is laid out horizontally, for example. a tool bar.-
744 \value State_KeyboardFocusChange Used to indicate if the focus was changed with the keyboard, e.g., tab, backtab or shortcut.-
745 \value State_MouseOver Used to indicate if the widget is under the mouse.-
746 \value State_NoChange Used to indicate a tri-state checkbox.-
747 \value State_Off Used to indicate if the widget is not checked.-
748 \value State_On Used to indicate if the widget is checked.-
749 \value State_Raised Used to indicate if a button is raised.-
750 \value State_ReadOnly Used to indicate if a widget is read-only.-
751 \value State_Selected Used to indicate if a widget is selected.-
752 \value State_Item Used by item views to indicate if a horizontal branch should be drawn.-
753 \value State_Open Used by item views to indicate if the tree branch is open.-
754 \value State_Sibling Used by item views to indicate if a vertical line needs to be drawn (for siblings).-
755 \value State_Sunken Used to indicate if the widget is sunken or pressed.-
756 \value State_UpArrow Used to indicate if an up arrow should be visible on the widget.-
757 \value State_Mini Used to indicate a mini style Mac widget or button.-
758 \value State_Small Used to indicate a small style Mac widget or button.-
759 \omitvalue State_Window-
760 \omitvalue State_Bottom-
761 \omitvalue State_FocusAtBorder-
762 \omitvalue State_Top-
763-
764 \sa drawPrimitive()-
765*/-
766-
767/*!-
768 \fn void QStyle::drawPrimitive(PrimitiveElement element, const QStyleOption *option, \-
769 QPainter *painter, const QWidget *widget) const-
770-
771 Draws the given primitive \a element with the provided \a painter using the style-
772 options specified by \a option.-
773-
774 The \a widget argument is optional and may contain a widget that may-
775 aid in drawing the primitive element.-
776-
777 The table below is listing the primitive elements and their-
778 associated style option subclasses. The style options contain all-
779 the parameters required to draw the elements, including-
780 QStyleOption::state which holds the style flags that are used when-
781 drawing. The table also describes which flags that are set when-
782 casting the given option to the appropriate subclass.-
783-
784 Note that if a primitive element is not listed here, it is because-
785 it uses a plain QStyleOption object.-
786-
787 \table-
788 \header \li Primitive Element \li QStyleOption Subclass \li Style Flag \li Remark-
789 \row \li \l PE_FrameFocusRect \li \l QStyleOptionFocusRect-
790 \li \l State_FocusAtBorder-
791 \li Whether the focus is is at the border or inside the widget.-
792 \row \li{1,2} \l PE_IndicatorCheckBox \li{1,2} \l QStyleOptionButton-
793 \li \l State_NoChange \li Indicates a "tri-state" checkbox.-
794 \row \li \l State_On \li Indicates the indicator is checked.-
795 \row \li \l PE_IndicatorRadioButton \li \l QStyleOptionButton-
796 \li \l State_On \li Indicates that a radio button is selected.-
797 \row \li \l State_NoChange \li Indicates a "tri-state" controller.-
798 \row \li \l State_Enabled \li Indicates the controller is enabled.-
799 \row \li{1,4} \l PE_IndicatorBranch \li{1,4} \l QStyleOption-
800 \li \l State_Children \li Indicates that the control for expanding the tree to show child items, should be drawn.-
801 \row \li \l State_Item \li Indicates that a horizontal branch (to show a child item), should be drawn.-
802 \row \li \l State_Open \li Indicates that the tree branch is expanded.-
803 \row \li \l State_Sibling \li Indicates that a vertical line (to show a sibling item), should be drawn.-
804 \row \li \l PE_IndicatorHeaderArrow \li \l QStyleOptionHeader-
805 \li \l State_UpArrow \li Indicates that the arrow should be drawn up;-
806 otherwise it should be down.-
807 \row \li \l PE_FrameGroupBox, \l PE_Frame, \l PE_FrameLineEdit,-
808 \l PE_FrameMenu, \l PE_FrameDockWidget, \l PE_FrameWindow-
809 \li \l QStyleOptionFrame \li \l State_Sunken-
810 \li Indicates that the Frame should be sunken.-
811 \row \li \l PE_IndicatorToolBarHandle \li \l QStyleOption-
812 \li \l State_Horizontal \li Indicates that the window handle is horizontal-
813 instead of vertical.-
814 \row \li \l PE_IndicatorSpinPlus, \l PE_IndicatorSpinMinus, \l PE_IndicatorSpinUp,-
815 \l PE_IndicatorSpinDown,-
816 \li \l QStyleOptionSpinBox-
817 \li \l State_Sunken \li Indicates that the button is pressed.-
818 \row \li{1,5} \l PE_PanelButtonCommand-
819 \li{1,5} \l QStyleOptionButton-
820 \li \l State_Enabled \li Set if the button is enabled.-
821 \row \li \l State_HasFocus \li Set if the button has input focus.-
822 \row \li \l State_Raised \li Set if the button is not down, not on and not flat.-
823 \row \li \l State_On \li Set if the button is a toggle button and is toggled on.-
824 \row \li \l State_Sunken-
825 \li Set if the button is down (i.e., the mouse button or the-
826 space bar is pressed on the button).-
827 \endtable-
828-
829 \sa drawComplexControl(), drawControl()-
830*/-
831-
832/*!-
833 \enum QStyle::ControlElement-
834-
835 This enum represents a control element. A control element is a-
836 part of a widget that performs some action or displays information-
837 to the user.-
838-
839 \value CE_PushButton A QPushButton, draws CE_PushButtonBevel, CE_PushButtonLabel and PE_FrameFocusRect.-
840 \value CE_PushButtonBevel The bevel and default indicator of a QPushButton.-
841 \value CE_PushButtonLabel The label (an icon with text or pixmap) of a QPushButton.-
842-
843 \value CE_DockWidgetTitle Dock window title.-
844 \value CE_Splitter Splitter handle; see also QSplitter.-
845-
846-
847 \value CE_CheckBox A QCheckBox, draws a PE_IndicatorCheckBox, a CE_CheckBoxLabel and a PE_FrameFocusRect.-
848 \value CE_CheckBoxLabel The label (text or pixmap) of a QCheckBox.-
849-
850 \value CE_RadioButton A QRadioButton, draws a PE_IndicatorRadioButton, a CE_RadioButtonLabel and a PE_FrameFocusRect.-
851 \value CE_RadioButtonLabel The label (text or pixmap) of a QRadioButton.-
852-
853 \value CE_TabBarTab The tab and label within a QTabBar.-
854 \value CE_TabBarTabShape The tab shape within a tab bar.-
855 \value CE_TabBarTabLabel The label within a tab.-
856-
857 \value CE_ProgressBar A QProgressBar, draws CE_ProgressBarGroove, CE_ProgressBarContents and CE_ProgressBarLabel.-
858 \value CE_ProgressBarGroove The groove where the progress-
859 indicator is drawn in a QProgressBar.-
860 \value CE_ProgressBarContents The progress indicator of a QProgressBar.-
861 \value CE_ProgressBarLabel The text label of a QProgressBar.-
862-
863 \value CE_ToolButtonLabel A tool button's label.-
864-
865 \value CE_MenuBarItem A menu item in a QMenuBar.-
866 \value CE_MenuBarEmptyArea The empty area of a QMenuBar.-
867-
868 \value CE_MenuItem A menu item in a QMenu.-
869 \value CE_MenuScroller Scrolling areas in a QMenu when the-
870 style supports scrolling.-
871 \value CE_MenuTearoff A menu item representing the tear off section of-
872 a QMenu.-
873 \value CE_MenuEmptyArea The area in a menu without menu items.-
874 \value CE_MenuHMargin The horizontal extra space on the left/right of a menu.-
875 \value CE_MenuVMargin The vertical extra space on the top/bottom of a menu.-
876-
877 \value CE_ToolBoxTab The toolbox's tab and label within a QToolBox.-
878 \value CE_SizeGrip Window resize handle; see also QSizeGrip.-
879-
880 \value CE_Header A header.-
881 \value CE_HeaderSection A header section.-
882 \value CE_HeaderLabel The header's label.-
883-
884 \value CE_ScrollBarAddLine Scroll bar line increase indicator.-
885 (i.e., scroll down); see also QScrollBar.-
886 \value CE_ScrollBarSubLine Scroll bar line decrease indicator (i.e., scroll up).-
887 \value CE_ScrollBarAddPage Scolllbar page increase indicator (i.e., page down).-
888 \value CE_ScrollBarSubPage Scroll bar page decrease indicator (i.e., page up).-
889 \value CE_ScrollBarSlider Scroll bar slider.-
890 \value CE_ScrollBarFirst Scroll bar first line indicator (i.e., home).-
891 \value CE_ScrollBarLast Scroll bar last line indicator (i.e., end).-
892-
893 \value CE_RubberBand Rubber band used in for example an icon view.-
894-
895 \value CE_FocusFrame Focus frame that is style controlled.-
896-
897 \value CE_ItemViewItem An item inside an item view.-
898-
899 \value CE_CustomBase Base value for custom control elements;-
900 custom values must be greater than this value.-
901 \value CE_ComboBoxLabel The label of a non-editable QComboBox.-
902 \value CE_ToolBar A toolbar like QToolBar.-
903 \value CE_ToolBoxTabShape The toolbox's tab shape.-
904 \value CE_ToolBoxTabLabel The toolbox's tab label.-
905 \value CE_HeaderEmptyArea The area of a header view where there are no header sections.-
906-
907 \value CE_ShapedFrame The frame with the shape specified in the QStyleOptionFrame; see QFrame.-
908-
909 \omitvalue CE_ColumnViewGrip-
910-
911 \sa drawControl()-
912*/-
913-
914/*!-
915 \fn void QStyle::drawControl(ControlElement element, const QStyleOption *option, QPainter *painter, const QWidget *widget) const-
916-
917 Draws the given \a element with the provided \a painter with the-
918 style options specified by \a option.-
919-
920 The \a widget argument is optional and can be used as aid in-
921 drawing the control. The \a option parameter is a pointer to a-
922 QStyleOption object that can be cast to the correct subclass-
923 using the qstyleoption_cast() function.-
924-
925 The table below is listing the control elements and their-
926 associated style option subclass. The style options contain all-
927 the parameters required to draw the controls, including-
928 QStyleOption::state which holds the style flags that are used when-
929 drawing. The table also describes which flags that are set when-
930 casting the given option to the appropriate subclass.-
931-
932 Note that if a control element is not listed here, it is because-
933 it uses a plain QStyleOption object.-
934-
935 \table-
936 \header \li Control Element \li QStyleOption Subclass \li Style Flag \li Remark-
937 \row \li{1,5} \l CE_MenuItem, \l CE_MenuBarItem-
938 \li{1,5} \l QStyleOptionMenuItem-
939 \li \l State_Selected \li The menu item is currently selected item.-
940 \row \li \l State_Enabled \li The item is enabled.-
941 \row \li \l State_DownArrow \li Indicates that a scroll down arrow should be drawn.-
942 \row \li \l State_UpArrow \li Indicates that a scroll up arrow should be drawn-
943 \row \li \l State_HasFocus \li Set if the menu bar has input focus.-
944-
945 \row \li{1,5} \l CE_PushButton, \l CE_PushButtonBevel, \l CE_PushButtonLabel-
946 \li{1,5} \l QStyleOptionButton-
947 \li \l State_Enabled \li Set if the button is enabled.-
948 \row \li \l State_HasFocus \li Set if the button has input focus.-
949 \row \li \l State_Raised \li Set if the button is not down, not on and not flat.-
950 \row \li \l State_On \li Set if the button is a toggle button and is toggled on.-
951 \row \li \l State_Sunken-
952 \li Set if the button is down (i.e., the mouse button or the-
953 space bar is pressed on the button).-
954-
955 \row \li{1,6} \l CE_RadioButton, \l CE_RadioButtonLabel,-
956 \l CE_CheckBox, \l CE_CheckBoxLabel-
957 \li{1,6} \l QStyleOptionButton-
958 \li \l State_Enabled \li Set if the button is enabled.-
959 \row \li \l State_HasFocus \li Set if the button has input focus.-
960 \row \li \l State_On \li Set if the button is checked.-
961 \row \li \l State_Off \li Set if the button is not checked.-
962 \row \li \l State_NoChange \li Set if the button is in the NoChange state.-
963 \row \li \l State_Sunken-
964 \li Set if the button is down (i.e., the mouse button or-
965 the space bar is pressed on the button).-
966-
967 \row \li{1,2} \l CE_ProgressBarContents, \l CE_ProgressBarLabel,-
968 \l CE_ProgressBarGroove-
969 \li{1,2} \l QStyleOptionProgressBar-
970 \li \l State_Enabled \li Set if the progress bar is enabled.-
971 \row \li \l State_HasFocus \li Set if the progress bar has input focus.-
972-
973 \row \li \l CE_Header, \l CE_HeaderSection, \l CE_HeaderLabel \li \l QStyleOptionHeader \li \li-
974-
975 \row \li{1,3} \l CE_TabBarTab, CE_TabBarTabShape, CE_TabBarTabLabel-
976 \li{1,3} \l QStyleOptionTab-
977 \li \l State_Enabled \li Set if the tab bar is enabled.-
978 \row \li \l State_Selected \li The tab bar is the currently selected tab bar.-
979 \row \li \l State_HasFocus \li Set if the tab bar tab has input focus.-
980-
981 \row \li{1,7} \l CE_ToolButtonLabel-
982 \li{1,7} \l QStyleOptionToolButton-
983 \li \l State_Enabled \li Set if the tool button is enabled.-
984 \row \li \l State_HasFocus \li Set if the tool button has input focus.-
985 \row \li \l State_Sunken-
986 \li Set if the tool button is down (i.e., a mouse button or-
987 the space bar is pressed).-
988 \row \li \l State_On \li Set if the tool button is a toggle button and is toggled on.-
989 \row \li \l State_AutoRaise \li Set if the tool button has auto-raise enabled.-
990 \row \li \l State_MouseOver \li Set if the mouse pointer is over the tool button.-
991 \row \li \l State_Raised \li Set if the button is not down and is not on.-
992-
993 \row \li \l CE_ToolBoxTab \li \l QStyleOptionToolBox-
994 \li \l State_Selected \li The tab is the currently selected tab.-
995 \row \li{1,3} \l CE_HeaderSection \li{1,3} \l QStyleOptionHeader-
996 \li \l State_Sunken \li Indicates that the section is pressed.-
997 \row \li \l State_UpArrow \li Indicates that the sort indicator should be pointing up.-
998 \row \li \l State_DownArrow \li Indicates that the sort indicator should be pointing down.-
999 \endtable-
1000-
1001 \sa drawPrimitive(), drawComplexControl()-
1002*/-
1003-
1004/*!-
1005 \enum QStyle::SubElement-
1006-
1007 This enum represents a sub-area of a widget. Style implementations-
1008 use these areas to draw the different parts of a widget.-
1009-
1010 \value SE_PushButtonContents Area containing the label (icon-
1011 with text or pixmap).-
1012 \value SE_PushButtonFocusRect Area for the focus rect (usually-
1013 larger than the contents rect).-
1014 \value SE_PushButtonLayoutItem Area that counts for the parent layout.-
1015-
1016 \value SE_CheckBoxIndicator Area for the state indicator (e.g., check mark).-
1017 \value SE_CheckBoxContents Area for the label (text or pixmap).-
1018 \value SE_CheckBoxFocusRect Area for the focus indicator.-
1019 \value SE_CheckBoxClickRect Clickable area, defaults to SE_CheckBoxFocusRect.-
1020 \value SE_CheckBoxLayoutItem Area that counts for the parent layout.-
1021-
1022 \value SE_DateTimeEditLayoutItem Area that counts for the parent layout.-
1023-
1024 \value SE_RadioButtonIndicator Area for the state indicator.-
1025 \value SE_RadioButtonContents Area for the label.-
1026 \value SE_RadioButtonFocusRect Area for the focus indicator.-
1027 \value SE_RadioButtonClickRect Clickable area, defaults to SE_RadioButtonFocusRect.-
1028 \value SE_RadioButtonLayoutItem Area that counts for the parent layout.-
1029-
1030 \value SE_ComboBoxFocusRect Area for the focus indicator.-
1031-
1032 \value SE_SliderFocusRect Area for the focus indicator.-
1033 \value SE_SliderLayoutItem Area that counts for the parent layout.-
1034-
1035 \value SE_SpinBoxLayoutItem Area that counts for the parent layout.-
1036-
1037 \value SE_ProgressBarGroove Area for the groove.-
1038 \value SE_ProgressBarContents Area for the progress indicator.-
1039 \value SE_ProgressBarLabel Area for the text label.-
1040 \value SE_ProgressBarLayoutItem Area that counts for the parent layout.-
1041-
1042 \omitvalue SE_ViewItemCheckIndicator-
1043-
1044 \value SE_FrameContents Area for a frame's contents.-
1045 \value SE_ShapedFrameContents Area for a frame's contents using the shape in QStyleOptionFrame; see QFrame-
1046 \value SE_FrameLayoutItem Area that counts for the parent layout.-
1047-
1048 \value SE_HeaderArrow Area for the sort indicator for a header.-
1049 \value SE_HeaderLabel Area for the label in a header.-
1050-
1051 \value SE_LabelLayoutItem Area that counts for the parent layout.-
1052-
1053 \value SE_LineEditContents Area for a line edit's contents.-
1054-
1055 \value SE_TabWidgetLeftCorner Area for the left corner widget in a tab widget.-
1056 \value SE_TabWidgetRightCorner Area for the right corner widget in a tab widget.-
1057 \value SE_TabWidgetTabBar Area for the tab bar widget in a tab widget.-
1058 \value SE_TabWidgetTabContents Area for the contents of the tab widget.-
1059 \value SE_TabWidgetTabPane Area for the pane of a tab widget.-
1060 \value SE_TabWidgetLayoutItem Area that counts for the parent layout.-
1061-
1062 \value SE_ToolBoxTabContents Area for a toolbox tab's icon and label.-
1063-
1064 \value SE_ToolButtonLayoutItem Area that counts for the parent layout.-
1065-
1066 \value SE_ItemViewItemCheckIndicator Area for a view item's check mark.-
1067-
1068 \value SE_TabBarTearIndicator Deprecated. Use SE_TabBarTearIndicatorLeft instead.-
1069 \value SE_TabBarTearIndicatorLeft Area for the tear indicator on the left side of a tab bar with scroll arrows.-
1070 \value SE_TabBarTearIndicatorRight Area for the tear indicator on the right side of a tab bar with scroll arrows.-
1071-
1072 \value SE_TabBarScrollLeftButton Area for the scroll left button on a tab bar with scroll buttons.-
1073 \value SE_TabBarScrollRightButton Area for the scroll right button on a tab bar with scroll buttons.-
1074-
1075 \value SE_TreeViewDisclosureItem Area for the actual disclosure item in a tree branch.-
1076-
1077 \value SE_DialogButtonBoxLayoutItem Area that counts for the parent layout.-
1078-
1079 \value SE_GroupBoxLayoutItem Area that counts for the parent layout.-
1080-
1081 \value SE_CustomBase Base value for custom sub-elements.-
1082 Custom values must be greater than this value.-
1083-
1084 \value SE_DockWidgetFloatButton The float button of a dock-
1085 widget.-
1086 \value SE_DockWidgetTitleBarText The text bounds of the dock-
1087 widgets title.-
1088 \value SE_DockWidgetCloseButton The close button of a dock-
1089 widget.-
1090 \value SE_DockWidgetIcon The icon of a dock widget.-
1091 \value SE_ComboBoxLayoutItem Area that counts for the parent layout.-
1092-
1093-
1094 \value SE_ItemViewItemDecoration Area for a view item's decoration (icon).-
1095 \value SE_ItemViewItemText Area for a view item's text.-
1096 \value SE_ItemViewItemFocusRect Area for a view item's focus rect.-
1097-
1098 \value SE_TabBarTabLeftButton Area for a widget on the left side of a tab in a tab bar.-
1099 \value SE_TabBarTabRightButton Area for a widget on the right side of a tab in a tab bar.-
1100 \value SE_TabBarTabText Area for the text on a tab in a tab bar.-
1101-
1102 \value SE_ToolBarHandle Area for the handle of a tool bar.-
1103-
1104 \sa subElementRect()-
1105*/-
1106-
1107/*!-
1108 \fn QRect QStyle::subElementRect(SubElement element, const QStyleOption *option, const QWidget *widget) const-
1109-
1110 Returns the sub-area for the given \a element as described in the-
1111 provided style \a option. The returned rectangle is defined in-
1112 screen coordinates.-
1113-
1114 The \a widget argument is optional and can be used to aid-
1115 determining the area. The QStyleOption object can be cast to the-
1116 appropriate type using the qstyleoption_cast() function. See the-
1117 table below for the appropriate \a option casts:-
1118-
1119 \table-
1120 \header \li Sub Element \li QStyleOption Subclass-
1121 \row \li \l SE_PushButtonContents \li \l QStyleOptionButton-
1122 \row \li \l SE_PushButtonFocusRect \li \l QStyleOptionButton-
1123 \row \li \l SE_CheckBoxIndicator \li \l QStyleOptionButton-
1124 \row \li \l SE_CheckBoxContents \li \l QStyleOptionButton-
1125 \row \li \l SE_CheckBoxFocusRect \li \l QStyleOptionButton-
1126 \row \li \l SE_RadioButtonIndicator \li \l QStyleOptionButton-
1127 \row \li \l SE_RadioButtonContents \li \l QStyleOptionButton-
1128 \row \li \l SE_RadioButtonFocusRect \li \l QStyleOptionButton-
1129 \row \li \l SE_ComboBoxFocusRect \li \l QStyleOptionComboBox-
1130 \row \li \l SE_ProgressBarGroove \li \l QStyleOptionProgressBar-
1131 \row \li \l SE_ProgressBarContents \li \l QStyleOptionProgressBar-
1132 \row \li \l SE_ProgressBarLabel \li \l QStyleOptionProgressBar-
1133 \endtable-
1134*/-
1135-
1136/*!-
1137 \enum QStyle::ComplexControl-
1138-
1139 This enum describes the available complex controls. Complex-
1140 controls have different behavior depending upon where the user-
1141 clicks on them or which keys are pressed.-
1142-
1143 \value CC_SpinBox A spinbox, like QSpinBox.-
1144 \value CC_ComboBox A combobox, like QComboBox.-
1145 \value CC_ScrollBar A scroll bar, like QScrollBar.-
1146 \value CC_Slider A slider, like QSlider.-
1147 \value CC_ToolButton A tool button, like QToolButton.-
1148 \value CC_TitleBar A Title bar, like those used in QMdiSubWindow.-
1149 \value CC_GroupBox A group box, like QGroupBox.-
1150 \value CC_Dial A dial, like QDial.-
1151 \value CC_MdiControls The minimize, close, and normal-
1152 button in the menu bar for a-
1153 maximized MDI subwindow.-
1154-
1155 \value CC_CustomBase Base value for custom complex controls. Custom-
1156 values must be greater than this value.-
1157-
1158 \sa SubControl, drawComplexControl()-
1159*/-
1160-
1161/*!-
1162 \enum QStyle::SubControl-
1163-
1164 This enum describes the available sub controls. A subcontrol is a-
1165 control element within a complex control (ComplexControl).-
1166-
1167 \value SC_None Special value that matches no other sub control.-
1168-
1169 \value SC_ScrollBarAddLine Scroll bar add line (i.e., down/right-
1170 arrow); see also QScrollBar.-
1171 \value SC_ScrollBarSubLine Scroll bar sub line (i.e., up/left arrow).-
1172 \value SC_ScrollBarAddPage Scroll bar add page (i.e., page down).-
1173 \value SC_ScrollBarSubPage Scroll bar sub page (i.e., page up).-
1174 \value SC_ScrollBarFirst Scroll bar first line (i.e., home).-
1175 \value SC_ScrollBarLast Scroll bar last line (i.e., end).-
1176 \value SC_ScrollBarSlider Scroll bar slider handle.-
1177 \value SC_ScrollBarGroove Special sub-control which contains the-
1178 area in which the slider handle may move.-
1179-
1180 \value SC_SpinBoxUp Spin widget up/increase; see also QSpinBox.-
1181 \value SC_SpinBoxDown Spin widget down/decrease.-
1182 \value SC_SpinBoxFrame Spin widget frame.-
1183 \value SC_SpinBoxEditField Spin widget edit field.-
1184-
1185 \value SC_ComboBoxEditField Combobox edit field; see also QComboBox.-
1186 \value SC_ComboBoxArrow Combobox arrow button.-
1187 \value SC_ComboBoxFrame Combobox frame.-
1188 \value SC_ComboBoxListBoxPopup The reference rectangle for the combobox popup.-
1189 Used to calculate the position of the popup.-
1190-
1191 \value SC_SliderGroove Special sub-control which contains the area-
1192 in which the slider handle may move.-
1193 \value SC_SliderHandle Slider handle.-
1194 \value SC_SliderTickmarks Slider tickmarks.-
1195-
1196 \value SC_ToolButton Tool button (see also QToolButton).-
1197 \value SC_ToolButtonMenu Sub-control for opening a popup menu in a-
1198 tool button.-
1199-
1200 \value SC_TitleBarSysMenu System menu button (i.e., restore, close, etc.).-
1201 \value SC_TitleBarMinButton Minimize button.-
1202 \value SC_TitleBarMaxButton Maximize button.-
1203 \value SC_TitleBarCloseButton Close button.-
1204 \value SC_TitleBarLabel Window title label.-
1205 \value SC_TitleBarNormalButton Normal (restore) button.-
1206 \value SC_TitleBarShadeButton Shade button.-
1207 \value SC_TitleBarUnshadeButton Unshade button.-
1208 \value SC_TitleBarContextHelpButton Context Help button.-
1209-
1210 \value SC_DialHandle The handle of the dial (i.e. what you use to control the dial).-
1211 \value SC_DialGroove The groove for the dial.-
1212 \value SC_DialTickmarks The tickmarks for the dial.-
1213-
1214 \value SC_GroupBoxFrame The frame of a group box.-
1215 \value SC_GroupBoxLabel The title of a group box.-
1216 \value SC_GroupBoxCheckBox The optional check box of a group box.-
1217 \value SC_GroupBoxContents The group box contents.-
1218-
1219 \value SC_MdiNormalButton The normal button for a MDI-
1220 subwindow in the menu bar.-
1221 \value SC_MdiMinButton The minimize button for a MDI-
1222 subwindow in the menu bar.-
1223 \value SC_MdiCloseButton The close button for a MDI subwindow-
1224 in the menu bar.-
1225-
1226 \value SC_All Special value that matches all sub-controls.-
1227 \omitvalue SC_CustomBase-
1228-
1229 \sa ComplexControl-
1230*/-
1231-
1232/*!-
1233 \fn void QStyle::drawComplexControl(ComplexControl control, const QStyleOptionComplex *option, QPainter *painter, const QWidget *widget) const-
1234-
1235 Draws the given \a control using the provided \a painter with the-
1236 style options specified by \a option.-
1237-
1238 The \a widget argument is optional and can be used as aid in-
1239 drawing the control.-
1240-
1241 The \a option parameter is a pointer to a QStyleOptionComplex-
1242 object that can be cast to the correct subclass using the-
1243 qstyleoption_cast() function. Note that the \c rect member of the-
1244 specified \a option must be in logical-
1245 coordinates. Reimplementations of this function should use-
1246 visualRect() to change the logical coordinates into screen-
1247 coordinates before calling the drawPrimitive() or drawControl()-
1248 function.-
1249-
1250 The table below is listing the complex control elements and their-
1251 associated style option subclass. The style options contain all-
1252 the parameters required to draw the controls, including-
1253 QStyleOption::state which holds the \l {QStyle::StateFlag}{style-
1254 flags} that are used when drawing. The table also describes which-
1255 flags that are set when casting the given \a option to the-
1256 appropriate subclass.-
1257-
1258 \table-
1259 \header \li Complex Control \li QStyleOptionComplex Subclass \li Style Flag \li Remark-
1260 \row \li{1,2} \l{CC_SpinBox} \li{1,2} \l QStyleOptionSpinBox-
1261 \li \l State_Enabled \li Set if the spin box is enabled.-
1262 \row \li \l State_HasFocus \li Set if the spin box has input focus.-
1263-
1264 \row \li{1,2} \l {CC_ComboBox} \li{1,2} \l QStyleOptionComboBox-
1265 \li \l State_Enabled \li Set if the combobox is enabled.-
1266 \row \li \l State_HasFocus \li Set if the combobox has input focus.-
1267-
1268 \row \li{1,2} \l {CC_ScrollBar} \li{1,2} \l QStyleOptionSlider-
1269 \li \l State_Enabled \li Set if the scroll bar is enabled.-
1270 \row \li \l State_HasFocus \li Set if the scroll bar has input focus.-
1271-
1272 \row \li{1,2} \l {CC_Slider} \li{1,2} \l QStyleOptionSlider-
1273 \li \l State_Enabled \li Set if the slider is enabled.-
1274 \row \li \l State_HasFocus \li Set if the slider has input focus.-
1275-
1276 \row \li{1,2} \l {CC_Dial} \li{1,2} \l QStyleOptionSlider-
1277 \li \l State_Enabled \li Set if the dial is enabled.-
1278 \row \li \l State_HasFocus \li Set if the dial has input focus.-
1279-
1280 \row \li{1,6} \l {CC_ToolButton} \li{1,6} \l QStyleOptionToolButton-
1281 \li \l State_Enabled \li Set if the tool button is enabled.-
1282 \row \li \l State_HasFocus \li Set if the tool button has input focus.-
1283 \row \li \l State_DownArrow \li Set if the tool button is down (i.e., a mouse-
1284 button or the space bar is pressed).-
1285 \row \li \l State_On \li Set if the tool button is a toggle button-
1286 and is toggled on.-
1287 \row \li \l State_AutoRaise \li Set if the tool button has auto-raise enabled.-
1288 \row \li \l State_Raised \li Set if the button is not down, not on, and doesn't-
1289 contain the mouse when auto-raise is enabled.-
1290-
1291 \row \li \l{CC_TitleBar} \li \l QStyleOptionTitleBar-
1292 \li \l State_Enabled \li Set if the title bar is enabled.-
1293-
1294 \endtable-
1295-
1296 \sa drawPrimitive(), drawControl()-
1297*/-
1298-
1299-
1300/*!-
1301 \fn QRect QStyle::subControlRect(ComplexControl control,-
1302 const QStyleOptionComplex *option, SubControl subControl,-
1303 const QWidget *widget) const = 0-
1304-
1305 Returns the rectangle containing the specified \a subControl of-
1306 the given complex \a control (with the style specified by \a-
1307 option). The rectangle is defined in screen coordinates.-
1308-
1309 The \a option argument is a pointer to QStyleOptionComplex or-
1310 one of its subclasses, and can be cast to the appropriate type-
1311 using the qstyleoption_cast() function. See drawComplexControl()-
1312 for details. The \a widget is optional and can contain additional-
1313 information for the function.-
1314-
1315 \sa drawComplexControl()-
1316*/-
1317-
1318/*!-
1319 \fn QStyle::SubControl QStyle::hitTestComplexControl(ComplexControl control,-
1320 const QStyleOptionComplex *option, const QPoint &position,-
1321 const QWidget *widget) const = 0-
1322-
1323 Returns the sub control at the given \a position in the given-
1324 complex \a control (with the style options specified by \a-
1325 option).-
1326-
1327 Note that the \a position is expressed in screen coordinates.-
1328-
1329 The \a option argument is a pointer to a QStyleOptionComplex-
1330 object (or one of its subclasses). The object can be cast to the-
1331 appropriate type using the qstyleoption_cast() function. See-
1332 drawComplexControl() for details. The \a widget argument is-
1333 optional and can contain additional information for the function.-
1334-
1335 \sa drawComplexControl(), subControlRect()-
1336*/-
1337-
1338/*!-
1339 \enum QStyle::PixelMetric-
1340-
1341 This enum describes the various available pixel metrics. A pixel-
1342 metric is a style dependent size represented by a single pixel-
1343 value.-
1344-
1345 \value PM_ButtonMargin Amount of whitespace between push button-
1346 labels and the frame.-
1347 \value PM_DockWidgetTitleBarButtonMargin Amount of whitespace between dock widget's-
1348 title bar button labels and the frame.-
1349 \value PM_ButtonDefaultIndicator Width of the default-button indicator frame.-
1350 \value PM_MenuButtonIndicator Width of the menu button indicator-
1351 proportional to the widget height.-
1352 \value PM_ButtonShiftHorizontal Horizontal contents shift of a-
1353 button when the button is down.-
1354 \value PM_ButtonShiftVertical Vertical contents shift of a button when the-
1355 button is down.-
1356-
1357 \value PM_DefaultFrameWidth Default frame width (usually 2).-
1358 \value PM_SpinBoxFrameWidth Frame width of a spin box, defaults to PM_DefaultFrameWidth.-
1359 \value PM_ComboBoxFrameWidth Frame width of a combo box, defaults to PM_DefaultFrameWidth.-
1360-
1361 \value PM_MDIFrameWidth Obsolete. Use PM_MdiSubWindowFrameWidth instead.-
1362 \value PM_MdiSubWindowFrameWidth Frame width of an MDI window.-
1363 \value PM_MDIMinimizedWidth Obsolete. Use PM_MdiSubWindowMinimizedWidth instead.-
1364 \value PM_MdiSubWindowMinimizedWidth Width of a minimized MDI window.-
1365-
1366 \value PM_LayoutLeftMargin Default \l{QLayout::setContentsMargins()}{left margin} for a-
1367 QLayout.-
1368 \value PM_LayoutTopMargin Default \l{QLayout::setContentsMargins()}{top margin} for a QLayout.-
1369 \value PM_LayoutRightMargin Default \l{QLayout::setContentsMargins()}{right margin} for a-
1370 QLayout.-
1371 \value PM_LayoutBottomMargin Default \l{QLayout::setContentsMargins()}{bottom margin} for a-
1372 QLayout.-
1373 \value PM_LayoutHorizontalSpacing Default \l{QLayout::spacing}{horizontal spacing} for a-
1374 QLayout.-
1375 \value PM_LayoutVerticalSpacing Default \l{QLayout::spacing}{vertical spacing} for a QLayout.-
1376-
1377 \value PM_MaximumDragDistance The maximum allowed distance between-
1378 the mouse and a scrollbar when dragging. Exceeding the specified-
1379 distance will cause the slider to jump back to the original-
1380 position; a value of -1 disables this behavior.-
1381-
1382 \value PM_ScrollBarExtent Width of a vertical scroll bar and the-
1383 height of a horizontal scroll bar.-
1384 \value PM_ScrollBarSliderMin The minimum height of a vertical-
1385 scroll bar's slider and the minimum width of a horizontal-
1386 scroll bar's slider.-
1387-
1388 \value PM_SliderThickness Total slider thickness.-
1389 \value PM_SliderControlThickness Thickness of the slider handle.-
1390 \value PM_SliderLength Length of the slider.-
1391 \value PM_SliderTickmarkOffset The offset between the tickmarks-
1392 and the slider.-
1393 \value PM_SliderSpaceAvailable The available space for the slider to move.-
1394-
1395 \value PM_DockWidgetSeparatorExtent Width of a separator in a-
1396 horizontal dock window and the height of a separator in a-
1397 vertical dock window.-
1398 \value PM_DockWidgetHandleExtent Width of the handle in a-
1399 horizontal dock window and the height of the handle in a-
1400 vertical dock window.-
1401 \value PM_DockWidgetFrameWidth Frame width of a dock window.-
1402 \value PM_DockWidgetTitleMargin Margin of the dock window title.-
1403-
1404 \value PM_MenuBarPanelWidth Frame width of a menu bar, defaults to PM_DefaultFrameWidth.-
1405 \value PM_MenuBarItemSpacing Spacing between menu bar items.-
1406 \value PM_MenuBarHMargin Spacing between menu bar items and left/right of bar.-
1407 \value PM_MenuBarVMargin Spacing between menu bar items and top/bottom of bar.-
1408-
1409 \value PM_ToolBarFrameWidth Width of the frame around toolbars.-
1410 \value PM_ToolBarHandleExtent Width of a toolbar handle in a-
1411 horizontal toolbar and the height of the handle in a vertical toolbar.-
1412 \value PM_ToolBarItemMargin Spacing between the toolbar frame and the items.-
1413 \value PM_ToolBarItemSpacing Spacing between toolbar items.-
1414 \value PM_ToolBarSeparatorExtent Width of a toolbar separator in a-
1415 horizontal toolbar and the height of a separator in a vertical toolbar.-
1416 \value PM_ToolBarExtensionExtent Width of a toolbar extension-
1417 button in a horizontal toolbar and the height of the button in a-
1418 vertical toolbar.-
1419-
1420 \value PM_TabBarTabOverlap Number of pixels the tabs should overlap.-
1421 (Currently only used in styles, not inside of QTabBar)-
1422 \value PM_TabBarTabHSpace Extra space added to the tab width.-
1423 \value PM_TabBarTabVSpace Extra space added to the tab height.-
1424 \value PM_TabBarBaseHeight Height of the area between the tab bar-
1425 and the tab pages.-
1426 \value PM_TabBarBaseOverlap Number of pixels the tab bar overlaps-
1427 the tab bar base.-
1428 \value PM_TabBarScrollButtonWidth-
1429 \value PM_TabBarTabShiftHorizontal Horizontal pixel shift when a-
1430 tab is selected.-
1431 \value PM_TabBarTabShiftVertical Vertical pixel shift when a-
1432 tab is selected.-
1433-
1434 \value PM_ProgressBarChunkWidth Width of a chunk in a progress bar indicator.-
1435-
1436 \value PM_SplitterWidth Width of a splitter.-
1437-
1438 \value PM_TitleBarHeight Height of the title bar.-
1439-
1440 \value PM_IndicatorWidth Width of a check box indicator.-
1441 \value PM_IndicatorHeight Height of a checkbox indicator.-
1442 \value PM_ExclusiveIndicatorWidth Width of a radio button indicator.-
1443 \value PM_ExclusiveIndicatorHeight Height of a radio button indicator.-
1444-
1445 \value PM_MenuPanelWidth Border width (applied on all sides) for a QMenu.-
1446 \value PM_MenuHMargin Additional border (used on left and right) for a QMenu.-
1447 \value PM_MenuVMargin Additional border (used for bottom and top) for a QMenu.-
1448 \value PM_MenuScrollerHeight Height of the scroller area in a QMenu.-
1449 \value PM_MenuTearoffHeight Height of a tear off area in a QMenu.-
1450 \value PM_MenuDesktopFrameWidth The frame width for the menu on the desktop.-
1451-
1452 \omitvalue PM_DialogButtonsSeparator-
1453 \omitvalue PM_DialogButtonsButtonWidth-
1454 \omitvalue PM_DialogButtonsButtonHeight-
1455-
1456 \value PM_HeaderMarkSize The size of the sort indicator in a header.-
1457 \value PM_HeaderGripMargin The size of the resize grip in a header.-
1458 \value PM_HeaderMargin The size of the margin between the sort indicator and the text.-
1459 \value PM_SpinBoxSliderHeight The height of the optional spin box slider.-
1460-
1461 \value PM_ToolBarIconSize Default tool bar icon size-
1462 \value PM_SmallIconSize Default small icon size-
1463 \value PM_LargeIconSize Default large icon size-
1464-
1465 \value PM_FocusFrameHMargin Horizontal margin that the focus frame will outset the widget by.-
1466 \value PM_FocusFrameVMargin Vertical margin that the focus frame will outset the widget by.-
1467 \value PM_IconViewIconSize The default size for icons in an icon view.-
1468 \value PM_ListViewIconSize The default size for icons in a list view.-
1469-
1470 \value PM_ToolTipLabelFrameWidth The frame width for a tool tip label.-
1471 \value PM_CheckBoxLabelSpacing The spacing between a check box indicator and its label.-
1472 \value PM_RadioButtonLabelSpacing The spacing between a radio button indicator and its label.-
1473 \value PM_TabBarIconSize The default icon size for a tab bar.-
1474 \value PM_SizeGripSize The size of a size grip.-
1475 \value PM_MessageBoxIconSize The size of the standard icons in a message box-
1476 \value PM_ButtonIconSize The default size of button icons-
1477 \value PM_TextCursorWidth The width of the cursor in a line edit or text edit-
1478 \value PM_TabBar_ScrollButtonOverlap The distance between the left and right buttons in a tab bar.-
1479-
1480 \value PM_TabCloseIndicatorWidth The default width of a close button on a tab in a tab bar.-
1481 \value PM_TabCloseIndicatorHeight The default height of a close button on a tab in a tab bar.-
1482-
1483 \value PM_ScrollView_ScrollBarSpacing Distance between frame and scrollbar-
1484 with SH_ScrollView_FrameOnlyAroundContents set.-
1485 \value PM_ScrollView_ScrollBarOverlap Overlap between scroll bars and scroll content-
1486-
1487 \value PM_SubMenuOverlap The horizontal overlap between a submenu and its parent.-
1488-
1489 \value PM_TreeViewIndentation The indentation of items in a tree view.-
1490 This enum value has been introduced in Qt 5.4.-
1491-
1492 \value PM_HeaderDefaultSectionSizeHorizontal The default size of sections-
1493 in a horizontal header. This enum value has been introduced in Qt 5.5.-
1494 \value PM_HeaderDefaultSectionSizeVertical The default size of sections-
1495 in a vertical header. This enum value has been introduced in Qt 5.5.-
1496-
1497 \value PM_CustomBase Base value for custom pixel metrics. Custom-
1498 values must be greater than this value.-
1499-
1500 The following values are obsolete:-
1501-
1502 \value PM_DefaultTopLevelMargin Use PM_LayoutLeftMargin,-
1503 PM_LayoutTopMargin,-
1504 PM_LayoutRightMargin, and-
1505 PM_LayoutBottomMargin instead.-
1506 \value PM_DefaultChildMargin Use PM_LayoutLeftMargin,-
1507 PM_LayoutTopMargin,-
1508 PM_LayoutRightMargin, and-
1509 PM_LayoutBottomMargin instead.-
1510 \value PM_DefaultLayoutSpacing Use PM_LayoutHorizontalSpacing-
1511 and PM_LayoutVerticalSpacing-
1512 instead.-
1513-
1514-
1515 \sa pixelMetric()-
1516*/-
1517-
1518/*!-
1519 \fn int QStyle::pixelMetric(PixelMetric metric, const QStyleOption *option, const QWidget *widget) const;-
1520-
1521 Returns the value of the given pixel \a metric.-
1522-
1523 The specified \a option and \a widget can be used for calculating-
1524 the metric. In general, the \a widget argument is not used. The \a-
1525 option can be cast to the appropriate type using the-
1526 qstyleoption_cast() function. Note that the \a option may be zero-
1527 even for PixelMetrics that can make use of it. See the table below-
1528 for the appropriate \a option casts:-
1529-
1530 \table-
1531 \header \li Pixel Metric \li QStyleOption Subclass-
1532 \row \li \l PM_SliderControlThickness \li \l QStyleOptionSlider-
1533 \row \li \l PM_SliderLength \li \l QStyleOptionSlider-
1534 \row \li \l PM_SliderTickmarkOffset \li \l QStyleOptionSlider-
1535 \row \li \l PM_SliderSpaceAvailable \li \l QStyleOptionSlider-
1536 \row \li \l PM_ScrollBarExtent \li \l QStyleOptionSlider-
1537 \row \li \l PM_TabBarTabOverlap \li \l QStyleOptionTab-
1538 \row \li \l PM_TabBarTabHSpace \li \l QStyleOptionTab-
1539 \row \li \l PM_TabBarTabVSpace \li \l QStyleOptionTab-
1540 \row \li \l PM_TabBarBaseHeight \li \l QStyleOptionTab-
1541 \row \li \l PM_TabBarBaseOverlap \li \l QStyleOptionTab-
1542 \endtable-
1543-
1544 Some pixel metrics are called from widgets and some are only called-
1545 internally by the style. If the metric is not called by a widget, it is the-
1546 discretion of the style author to make use of it. For some styles, this-
1547 may not be appropriate.-
1548*/-
1549-
1550/*!-
1551 \enum QStyle::ContentsType-
1552-
1553 This enum describes the available contents types. These are used to-
1554 calculate sizes for the contents of various widgets.-
1555-
1556 \value CT_CheckBox A check box, like QCheckBox.-
1557 \value CT_ComboBox A combo box, like QComboBox.-
1558 \omitvalue CT_DialogButtons-
1559 \value CT_HeaderSection A header section, like QHeader.-
1560 \value CT_LineEdit A line edit, like QLineEdit.-
1561 \value CT_Menu A menu, like QMenu.-
1562 \value CT_MenuBar A menu bar, like QMenuBar.-
1563 \value CT_MenuBarItem A menu bar item, like the buttons in a QMenuBar.-
1564 \value CT_MenuItem A menu item, like QMenuItem.-
1565 \value CT_ProgressBar A progress bar, like QProgressBar.-
1566 \value CT_PushButton A push button, like QPushButton.-
1567 \value CT_RadioButton A radio button, like QRadioButton.-
1568 \value CT_SizeGrip A size grip, like QSizeGrip.-
1569 \value CT_Slider A slider, like QSlider.-
1570 \value CT_ScrollBar A scroll bar, like QScrollBar.-
1571 \value CT_SpinBox A spin box, like QSpinBox.-
1572 \value CT_Splitter A splitter, like QSplitter.-
1573 \value CT_TabBarTab A tab on a tab bar, like QTabBar.-
1574 \value CT_TabWidget A tab widget, like QTabWidget.-
1575 \value CT_ToolButton A tool button, like QToolButton.-
1576 \value CT_GroupBox A group box, like QGroupBox.-
1577 \value CT_ItemViewItem An item inside an item view.-
1578-
1579 \value CT_CustomBase Base value for custom contents types.-
1580 Custom values must be greater than this value.-
1581-
1582 \value CT_MdiControls The minimize, normal, and close button-
1583 in the menu bar for a maximized MDI-
1584 subwindow.-
1585-
1586 \sa sizeFromContents()-
1587*/-
1588-
1589/*!-
1590 \fn QSize QStyle::sizeFromContents(ContentsType type, const QStyleOption *option, \-
1591 const QSize &contentsSize, const QWidget *widget) const-
1592-
1593 Returns the size of the element described by the specified-
1594 \a option and \a type, based on the provided \a contentsSize.-
1595-
1596 The \a option argument is a pointer to a QStyleOption or one of-
1597 its subclasses. The \a option can be cast to the appropriate type-
1598 using the qstyleoption_cast() function. The \a widget is an-
1599 optional argument and can contain extra information used for-
1600 calculating the size.-
1601-
1602 See the table below for the appropriate \a option casts:-
1603-
1604 \table-
1605 \header \li Contents Type \li QStyleOption Subclass-
1606 \row \li \l CT_CheckBox \li \l QStyleOptionButton-
1607 \row \li \l CT_ComboBox \li \l QStyleOptionComboBox-
1608 \row \li \l CT_GroupBox \li \l QStyleOptionGroupBox-
1609 \row \li \l CT_HeaderSection \li \l QStyleOptionHeader-
1610 \row \li \l CT_ItemViewItem \li \l QStyleOptionViewItem-
1611 \row \li \l CT_LineEdit \li \l QStyleOptionFrame-
1612 \row \li \l CT_MdiControls \li \l QStyleOptionComplex-
1613 \row \li \l CT_Menu \li \l QStyleOption-
1614 \row \li \l CT_MenuItem \li \l QStyleOptionMenuItem-
1615 \row \li \l CT_MenuBar \li \l QStyleOptionMenuItem-
1616 \row \li \l CT_MenuBarItem \li \l QStyleOptionMenuItem-
1617 \row \li \l CT_ProgressBar \li \l QStyleOptionProgressBar-
1618 \row \li \l CT_PushButton \li \l QStyleOptionButton-
1619 \row \li \l CT_RadioButton \li \l QStyleOptionButton-
1620 \row \li \l CT_ScrollBar \li \l QStyleOptionSlider-
1621 \row \li \l CT_SizeGrip \li \l QStyleOption-
1622 \row \li \l CT_Slider \li \l QStyleOptionSlider-
1623 \row \li \l CT_SpinBox \li \l QStyleOptionSpinBox-
1624 \row \li \l CT_Splitter \li \l QStyleOption-
1625 \row \li \l CT_TabBarTab \li \l QStyleOptionTab-
1626 \row \li \l CT_TabWidget \li \l QStyleOptionTabWidgetFrame-
1627 \row \li \l CT_ToolButton \li \l QStyleOptionToolButton-
1628 \endtable-
1629-
1630 \sa ContentsType, QStyleOption-
1631*/-
1632-
1633/*!-
1634 \enum QStyle::RequestSoftwareInputPanel-
1635-
1636 This enum describes under what circumstances a software input panel will be-
1637 requested by input capable widgets.-
1638-
1639 \value RSIP_OnMouseClickAndAlreadyFocused Requests an input panel if the user-
1640 clicks on the widget, but only if it is already focused.-
1641 \value RSIP_OnMouseClick Requests an input panel if the user clicks on the-
1642 widget.-
1643-
1644 \sa QInputMethod-
1645*/-
1646-
1647/*!-
1648 \enum QStyle::StyleHint-
1649-
1650 This enum describes the available style hints. A style hint is a general look-
1651 and/or feel hint.-
1652-
1653 \value SH_EtchDisabledText Disabled text is "etched" as it is on Windows.-
1654-
1655 \value SH_DitherDisabledText Disabled text is dithered as it is on Motif.-
1656-
1657 \value SH_ScrollBar_ContextMenu Whether or not a scroll bar has a context menu.-
1658-
1659 \value SH_ScrollBar_MiddleClickAbsolutePosition A boolean value.-
1660 If true, middle clicking on a scroll bar causes the slider to-
1661 jump to that position. If false, middle clicking is-
1662 ignored.-
1663-
1664 \value SH_ScrollBar_LeftClickAbsolutePosition A boolean value.-
1665 If true, left clicking on a scroll bar causes the slider to-
1666 jump to that position. If false, left clicking will-
1667 behave as appropriate for each control.-
1668-
1669 \value SH_ScrollBar_ScrollWhenPointerLeavesControl A boolean-
1670 value. If true, when clicking a scroll bar SubControl, holding-
1671 the mouse button down and moving the pointer outside the-
1672 SubControl, the scroll bar continues to scroll. If false, the-
1673 scollbar stops scrolling when the pointer leaves the-
1674 SubControl.-
1675-
1676 \value SH_ScrollBar_RollBetweenButtons A boolean value.-
1677 If true, when clicking a scroll bar button (SC_ScrollBarAddLine or-
1678 SC_ScrollBarSubLine) and dragging over to the opposite button (rolling)-
1679 will press the new button and release the old one. When it is false, the-
1680 original button is released and nothing happens (like a push button).-
1681-
1682 \value SH_TabBar_Alignment The alignment for tabs in a-
1683 QTabWidget. Possible values are Qt::AlignLeft,-
1684 Qt::AlignCenter and Qt::AlignRight.-
1685-
1686 \value SH_Header_ArrowAlignment The placement of the sorting-
1687 indicator may appear in list or table headers. Possible values-
1688 are Qt::Alignment values (that is, an OR combination of-
1689 Qt::AlignmentFlag flags).-
1690-
1691 \value SH_Slider_SnapToValue Sliders snap to values while moving,-
1692 as they do on Windows.-
1693-
1694 \value SH_Slider_SloppyKeyEvents Key presses handled in a sloppy-
1695 manner, i.e., left on a vertical slider subtracts a line.-
1696-
1697 \value SH_ProgressDialog_CenterCancelButton Center button on-
1698 progress dialogs, otherwise right aligned.-
1699-
1700 \value SH_ProgressDialog_TextLabelAlignment The alignment for text-
1701 labels in progress dialogs; Qt::AlignCenter on Windows,-
1702 Qt::AlignVCenter otherwise.-
1703-
1704 \value SH_PrintDialog_RightAlignButtons Right align buttons in-
1705 the print dialog, as done on Windows.-
1706-
1707 \value SH_MainWindow_SpaceBelowMenuBar One or two pixel space between-
1708 the menu bar and the dockarea, as done on Windows.-
1709-
1710 \value SH_FontDialog_SelectAssociatedText Select the text in the-
1711 line edit, or when selecting an item from the listbox, or when-
1712 the line edit receives focus, as done on Windows.-
1713-
1714 \value SH_Menu_KeyboardSearch Typing causes a menu to be search-
1715 for relevant items, otherwise only mnemnonic is considered.-
1716-
1717 \value SH_Menu_AllowActiveAndDisabled Allows disabled menu-
1718 items to be active.-
1719-
1720 \value SH_Menu_SpaceActivatesItem Pressing the space bar activates-
1721 the item, as done on Motif.-
1722-
1723 \value SH_Menu_SubMenuPopupDelay The number of milliseconds-
1724 to wait before opening a submenu (256 on Windows, 96 on Motif).-
1725-
1726 \value SH_Menu_Scrollable Whether popup menus must support scrolling.-
1727-
1728 \value SH_Menu_SloppySubMenus Whether popup menus must support-
1729 the user moving the mouse cursor to a submenu while crossing-
1730 other items of the menu. This is supported on most modern-
1731 desktop platforms.-
1732-
1733 \value SH_Menu_SubMenuUniDirection Since Qt 5.5. If the cursor has-
1734 to move towards the submenu (like it is on \macos), or if the-
1735 cursor can move in any direction as long as it reaches the-
1736 submenu before the sloppy timeout.-
1737-
1738 \value SH_Menu_SubMenuUniDirectionFailCount Since Qt 5.5. When-
1739 SH_Menu_SubMenuUniDirection is defined this enum defines the-
1740 number of failed mouse moves before the sloppy submenu is-
1741 discarded. This can be used to control the "strictness" of the-
1742 uni direction algorithm.-
1743-
1744 \value SH_Menu_SubMenuSloppySelectOtherActions Since Qt 5.5. Should-
1745 other action items be selected when the mouse moves towards a-
1746 sloppy submenu.-
1747-
1748 \value SH_Menu_SubMenuSloppyCloseTimeout Since Qt 5.5. The timeout-
1749 used to close sloppy submenus.-
1750-
1751 \value SH_Menu_SubMenuResetWhenReenteringParent Since Qt 5.5. When-
1752 entering parent from child submenu, should the sloppy state be-
1753 reset, effectively closing the child and making the current-
1754 submenu active.-
1755-
1756 \value SH_Menu_SubMenuDontStartSloppyOnLeave Since Qt 5.5. Do not-
1757 start sloppy timers when the mouse leaves a sub-menu.-
1758-
1759 \value SH_ScrollView_FrameOnlyAroundContents Whether scrollviews-
1760 draw their frame only around contents (like Motif), or around-
1761 contents, scroll bars and corner widgets (like Windows).-
1762-
1763 \value SH_MenuBar_AltKeyNavigation Menu bars items are navigable-
1764 by pressing Alt, followed by using the arrow keys to select-
1765 the desired item.-
1766-
1767 \value SH_ComboBox_ListMouseTracking Mouse tracking in combobox-
1768 drop-down lists.-
1769-
1770 \value SH_Menu_MouseTracking Mouse tracking in popup menus.-
1771-
1772 \value SH_MenuBar_MouseTracking Mouse tracking in menu bars.-
1773-
1774 \value SH_Menu_FillScreenWithScroll Whether scrolling popups-
1775 should fill the screen as they are scrolled.-
1776-
1777 \value SH_Menu_SelectionWrap Whether popups should allow the selections-
1778 to wrap, that is when selection should the next item be the first item.-
1779-
1780 \value SH_ItemView_ChangeHighlightOnFocus Gray out selected items-
1781 when losing focus.-
1782-
1783 \value SH_Widget_ShareActivation Turn on sharing activation with-
1784 floating modeless dialogs.-
1785-
1786 \value SH_TabBar_SelectMouseType Which type of mouse event should-
1787 cause a tab to be selected.-
1788-
1789 \value SH_ListViewExpand_SelectMouseType Which type of mouse event should-
1790 cause a list view expansion to be selected.-
1791-
1792 \value SH_TabBar_PreferNoArrows Whether a tab bar should suggest a size-
1793 to prevent scoll arrows.-
1794-
1795 \value SH_ComboBox_Popup Allows popups as a combobox drop-down-
1796 menu.-
1797-
1798 \omitvalue SH_ComboBox_UseNativePopup-
1799-
1800 \value SH_Workspace_FillSpaceOnMaximize The workspace should-
1801 maximize the client area.-
1802-
1803 \value SH_TitleBar_NoBorder The title bar has no border.-
1804-
1805 \value SH_ScrollBar_StopMouseOverSlider Obsolete. Use-
1806 SH_Slider_StopMouseOverSlider instead.-
1807-
1808 \value SH_Slider_StopMouseOverSlider Stops auto-repeat when-
1809 the slider reaches the mouse position.-
1810-
1811 \value SH_BlinkCursorWhenTextSelected Whether cursor should blink-
1812 when text is selected.-
1813-
1814 \value SH_RichText_FullWidthSelection Whether richtext selections-
1815 should extend to the full width of the document.-
1816-
1817 \value SH_GroupBox_TextLabelVerticalAlignment How to vertically align a-
1818 group box's text label.-
1819-
1820 \value SH_GroupBox_TextLabelColor How to paint a group box's text label.-
1821-
1822 \value SH_DialogButtons_DefaultButton Which button gets the-
1823 default status in a dialog's button widget.-
1824-
1825 \value SH_ToolBox_SelectedPageTitleBold Boldness of the selected-
1826 page title in a QToolBox.-
1827-
1828 \value SH_LineEdit_PasswordCharacter The Unicode character to be-
1829 used for passwords.-
1830-
1831 \value SH_LineEdit_PasswordMaskDelay Determines the delay before visible character is masked-
1832 with password character, in milliseconds. This enum value was added in Qt 5.4.-
1833-
1834 \value SH_Table_GridLineColor The RGB value of the grid for a table.-
1835-
1836 \value SH_UnderlineShortcut Whether shortcuts are underlined.-
1837-
1838 \value SH_SpellCheckUnderlineStyle A-
1839 QTextCharFormat::UnderlineStyle value that specifies the way-
1840 misspelled words should be underlined.-
1841-
1842 \value SH_SpinBox_AnimateButton Animate a click when up or down is-
1843 pressed in a spin box.-
1844 \value SH_SpinBox_KeyPressAutoRepeatRate Auto-repeat interval for-
1845 spinbox key presses.-
1846 \value SH_SpinBox_ClickAutoRepeatRate Auto-repeat interval for-
1847 spinbox mouse clicks.-
1848 \value SH_SpinBox_ClickAutoRepeatThreshold Auto-repeat threshold for-
1849 spinbox mouse clicks.-
1850 \value SH_ToolTipLabel_Opacity An integer indicating the opacity for-
1851 the tip label, 0 is completely transparent, 255 is completely-
1852 opaque.-
1853 \value SH_DrawMenuBarSeparator Indicates whether or not the menu bar draws separators.-
1854 \value SH_TitleBar_ModifyNotification Indicates if the title bar should show-
1855 a '*' for windows that are modified.-
1856-
1857 \value SH_Button_FocusPolicy The default focus policy for buttons.-
1858-
1859 \value SH_CustomBase Base value for custom style hints.-
1860 Custom values must be greater than this value.-
1861-
1862 \value SH_MessageBox_UseBorderForButtonSpacing A boolean indicating what the to-
1863 use the border of the buttons (computed as half the button height) for the spacing-
1864 of the button in a message box.-
1865-
1866 \value SH_MessageBox_CenterButtons A boolean indicating whether the buttons in the-
1867 message box should be centered or not (see QDialogButtonBox::setCentered()).-
1868-
1869 \value SH_MessageBox_TextInteractionFlags A boolean indicating if-
1870 the text in a message box should allow user interfactions (e.g.-
1871 selection) or not.-
1872-
1873 \value SH_TitleBar_AutoRaise A boolean indicating whether-
1874 controls on a title bar ought to update when the mouse is over them.-
1875-
1876 \value SH_ToolButton_PopupDelay An int indicating the popup delay in milliseconds-
1877 for menus attached to tool buttons.-
1878-
1879 \value SH_FocusFrame_Mask The mask of the focus frame.-
1880-
1881 \value SH_RubberBand_Mask The mask of the rubber band.-
1882-
1883 \value SH_WindowFrame_Mask The mask of the window frame.-
1884-
1885 \value SH_SpinControls_DisableOnBounds Determines if the spin controls will shown-
1886 as disabled when reaching the spin range boundary.-
1887-
1888 \value SH_Dial_BackgroundRole Defines the style's preferred-
1889 background role (as QPalette::ColorRole) for a dial widget.-
1890-
1891 \value SH_ComboBox_LayoutDirection The layout direction for the-
1892 combo box. By default it should be the same as indicated by the-
1893 QStyleOption::direction variable.-
1894-
1895 \value SH_ItemView_EllipsisLocation The location where ellipses should be-
1896 added for item text that is too long to fit in an view item.-
1897-
1898 \value SH_ItemView_ShowDecorationSelected When an item in an item-
1899 view is selected, also highlight the branch or other decoration.-
1900-
1901 \value SH_ItemView_ActivateItemOnSingleClick Emit the activated signal-
1902 when the user single clicks on an item in an item in an item view.-
1903 Otherwise the signal is emitted when the user double clicks on an item.-
1904-
1905 \value SH_Slider_AbsoluteSetButtons Which mouse buttons cause a slider-
1906 to set the value to the position clicked on.-
1907-
1908 \value SH_Slider_PageSetButtons Which mouse buttons cause a slider-
1909 to page step the value.-
1910-
1911 \value SH_TabBar_ElideMode The default eliding style for a tab bar.-
1912-
1913 \value SH_DialogButtonLayout Controls how buttons are laid out in a QDialogButtonBox, returns a QDialogButtonBox::ButtonLayout enum.-
1914-
1915 \value SH_WizardStyle Controls the look and feel of a QWizard. Returns a QWizard::WizardStyle enum.-
1916-
1917 \value SH_FormLayoutWrapPolicy Provides a default for how rows are wrapped in a QFormLayout. Returns a QFormLayout::RowWrapPolicy enum.-
1918 \value SH_FormLayoutFieldGrowthPolicy Provides a default for how fields can grow in a QFormLayout. Returns a QFormLayout::FieldGrowthPolicy enum.-
1919 \value SH_FormLayoutFormAlignment Provides a default for how a QFormLayout aligns its contents within the available space. Returns a Qt::Alignment enum.-
1920 \value SH_FormLayoutLabelAlignment Provides a default for how a QFormLayout aligns labels within the available space. Returns a Qt::Alignment enum.-
1921-
1922 \value SH_ItemView_ArrowKeysNavigateIntoChildren Controls whether the tree view will select the first child when it is exapanded and the right arrow key is pressed.-
1923 \value SH_ComboBox_PopupFrameStyle The frame style used when drawing a combobox popup menu.-
1924-
1925 \value SH_DialogButtonBox_ButtonsHaveIcons Indicates whether or not StandardButtons in QDialogButtonBox should have icons or not.-
1926 \value SH_ItemView_MovementWithoutUpdatingSelection The item view is able to indicate a current item without changing the selection.-
1927 \value SH_ToolTip_Mask The mask of a tool tip.-
1928-
1929 \value SH_FocusFrame_AboveWidget The FocusFrame is stacked above the widget that it is "focusing on".-
1930-
1931 \value SH_TextControl_FocusIndicatorTextCharFormat Specifies the text format used to highlight focused anchors in rich text-
1932 documents displayed for example in QTextBrowser. The format has to be a QTextCharFormat returned in the variant of the-
1933 QStyleHintReturnVariant return value. The QTextFormat::OutlinePen property is used for the outline and QTextFormat::BackgroundBrush-
1934 for the background of the highlighted area.-
1935-
1936 \value SH_Menu_FlashTriggeredItem Flash triggered item.-
1937 \value SH_Menu_FadeOutOnHide Fade out the menu instead of hiding it immediately.-
1938-
1939 \value SH_TabWidget_DefaultTabPosition Default position of the tab bar in a tab widget.-
1940-
1941 \value SH_ToolBar_Movable Determines if the tool bar is movable by default.-
1942-
1943 \value SH_ItemView_PaintAlternatingRowColorsForEmptyArea Whether QTreeView paints alternating row colors for the area that does not have any items.-
1944-
1945 \value SH_Menu_Mask The mask for a popup menu.-
1946-
1947 \value SH_ItemView_DrawDelegateFrame Determines if there should be a frame for a delegate widget.-
1948-
1949 \value SH_TabBar_CloseButtonPosition Determines the position of the close button on a tab in a tab bar.-
1950-
1951 \value SH_DockWidget_ButtonsHaveFrame Determines if dockwidget buttons should have frames. Default is true.-
1952-
1953 \value SH_ToolButtonStyle Determines the default system style for tool buttons that uses Qt::ToolButtonFollowStyle.-
1954-
1955 \value SH_RequestSoftwareInputPanel Determines when a software input panel should-
1956 be requested by input widgets. Returns an enum of type QStyle::RequestSoftwareInputPanel.-
1957-
1958 \value SH_ScrollBar_Transient Determines if the style supports transient scroll bars. Transient-
1959 scroll bars appear when the content is scrolled and disappear when they are no longer needed.-
1960-
1961 \value SH_Menu_SupportsSections Determines if the style displays sections in menus or treat them as-
1962 plain separators. Sections are separators with a text and icon hint.-
1963-
1964 \value SH_ToolTip_WakeUpDelay Determines the delay before a tooltip is shown, in milliseconds.-
1965-
1966 \value SH_ToolTip_FallAsleepDelay Determines the delay (in milliseconds) before a new wake time is needed when-
1967 a tooltip is shown (notice: shown, not hidden). When a new wake isn't needed, a user-requested tooltip-
1968 will be shown nearly instantly.-
1969-
1970 \value SH_Widget_Animate Determines if the widget should show animations or not, for example-
1971 a transition between checked and unchecked statuses in a checkbox.-
1972 This enum value has been introduced in Qt 5.2.-
1973-
1974 \value SH_Splitter_OpaqueResize Determines if resizing is opaque-
1975 This enum value has been introduced in Qt 5.2-
1976-
1977 \value SH_TabBar_ChangeCurrentDelay Determines the delay before the current-
1978 tab is changed while dragging over the tabbar, in milliseconds. This-
1979 enum value has been introduced in Qt 5.4-
1980-
1981 \value SH_ItemView_ScrollMode The default vertical and horizontal scroll mode as specified-
1982 by the style. Can be overridden with QAbstractItemView::setVerticalScrollMode() and-
1983 QAbstractItemView::setHorizontalScrollMode(). This enum value has been introduced in Qt 5.7.-
1984-
1985 \sa styleHint()-
1986*/-
1987-
1988/*!-
1989 \fn int QStyle::styleHint(StyleHint hint, const QStyleOption *option, \-
1990 const QWidget *widget, QStyleHintReturn *returnData) const-
1991-
1992 Returns an integer representing the specified style \a hint for-
1993 the given \a widget described by the provided style \a option.-
1994-
1995 \a returnData is used when the querying widget needs more detailed data than-
1996 the integer that styleHint() returns. See the QStyleHintReturn class-
1997 description for details.-
1998*/-
1999-
2000/*!-
2001 \enum QStyle::StandardPixmap-
2002-
2003 This enum describes the available standard pixmaps. A standard pixmap is a pixmap that-
2004 can follow some existing GUI style or guideline.-
2005-
2006 \value SP_TitleBarMinButton Minimize button on title bars (e.g.,-
2007 in QMdiSubWindow).-
2008 \value SP_TitleBarMenuButton Menu button on a title bar.-
2009 \value SP_TitleBarMaxButton Maximize button on title bars.-
2010 \value SP_TitleBarCloseButton Close button on title bars.-
2011 \value SP_TitleBarNormalButton Normal (restore) button on title bars.-
2012 \value SP_TitleBarShadeButton Shade button on title bars.-
2013 \value SP_TitleBarUnshadeButton Unshade button on title bars.-
2014 \value SP_TitleBarContextHelpButton The Context help button on title bars.-
2015 \value SP_MessageBoxInformation The "information" icon.-
2016 \value SP_MessageBoxWarning The "warning" icon.-
2017 \value SP_MessageBoxCritical The "critical" icon.-
2018 \value SP_MessageBoxQuestion The "question" icon.-
2019 \value SP_DesktopIcon The "desktop" icon.-
2020 \value SP_TrashIcon The "trash" icon.-
2021 \value SP_ComputerIcon The "My computer" icon.-
2022 \value SP_DriveFDIcon The floppy icon.-
2023 \value SP_DriveHDIcon The harddrive icon.-
2024 \value SP_DriveCDIcon The CD icon.-
2025 \value SP_DriveDVDIcon The DVD icon.-
2026 \value SP_DriveNetIcon The network icon.-
2027 \value SP_DirHomeIcon The home directory icon.-
2028 \value SP_DirOpenIcon The open directory icon.-
2029 \value SP_DirClosedIcon The closed directory icon.-
2030 \value SP_DirIcon The directory icon.-
2031 \value SP_DirLinkIcon The link to directory icon.-
2032 \value SP_DirLinkOpenIcon The link to open directory icon.-
2033 \value SP_FileIcon The file icon.-
2034 \value SP_FileLinkIcon The link to file icon.-
2035 \value SP_FileDialogStart The "start" icon in a file dialog.-
2036 \value SP_FileDialogEnd The "end" icon in a file dialog.-
2037 \value SP_FileDialogToParent The "parent directory" icon in a file dialog.-
2038 \value SP_FileDialogNewFolder The "create new folder" icon in a file dialog.-
2039 \value SP_FileDialogDetailedView The detailed view icon in a file dialog.-
2040 \value SP_FileDialogInfoView The file info icon in a file dialog.-
2041 \value SP_FileDialogContentsView The contents view icon in a file dialog.-
2042 \value SP_FileDialogListView The list view icon in a file dialog.-
2043 \value SP_FileDialogBack The back arrow in a file dialog.-
2044 \value SP_DockWidgetCloseButton Close button on dock windows (see also QDockWidget).-
2045 \value SP_ToolBarHorizontalExtensionButton Extension button for horizontal toolbars.-
2046 \value SP_ToolBarVerticalExtensionButton Extension button for vertical toolbars.-
2047 \value SP_DialogOkButton Icon for a standard OK button in a QDialogButtonBox.-
2048 \value SP_DialogCancelButton Icon for a standard Cancel button in a QDialogButtonBox.-
2049 \value SP_DialogHelpButton Icon for a standard Help button in a QDialogButtonBox.-
2050 \value SP_DialogOpenButton Icon for a standard Open button in a QDialogButtonBox.-
2051 \value SP_DialogSaveButton Icon for a standard Save button in a QDialogButtonBox.-
2052 \value SP_DialogCloseButton Icon for a standard Close button in a QDialogButtonBox.-
2053 \value SP_DialogApplyButton Icon for a standard Apply button in a QDialogButtonBox.-
2054 \value SP_DialogResetButton Icon for a standard Reset button in a QDialogButtonBox.-
2055 \value SP_DialogDiscardButton Icon for a standard Discard button in a QDialogButtonBox.-
2056 \value SP_DialogYesButton Icon for a standard Yes button in a QDialogButtonBox.-
2057 \value SP_DialogNoButton Icon for a standard No button in a QDialogButtonBox.-
2058 \value SP_ArrowUp Icon arrow pointing up.-
2059 \value SP_ArrowDown Icon arrow pointing down.-
2060 \value SP_ArrowLeft Icon arrow pointing left.-
2061 \value SP_ArrowRight Icon arrow pointing right.-
2062 \value SP_ArrowBack Equivalent to SP_ArrowLeft when the current layout direction is Qt::LeftToRight, otherwise SP_ArrowRight.-
2063 \value SP_ArrowForward Equivalent to SP_ArrowRight when the current layout direction is Qt::LeftToRight, otherwise SP_ArrowLeft.-
2064 \value SP_CommandLink Icon used to indicate a Vista style command link glyph.-
2065 \value SP_VistaShield Icon used to indicate UAC prompts on Windows Vista. This will return a null pixmap or icon on all other platforms.-
2066 \value SP_BrowserReload Icon indicating that the current page should be reloaded.-
2067 \value SP_BrowserStop Icon indicating that the page loading should stop.-
2068 \value SP_MediaPlay Icon indicating that media should begin playback.-
2069 \value SP_MediaStop Icon indicating that media should stop playback.-
2070 \value SP_MediaPause Icon indicating that media should pause playback.-
2071 \value SP_MediaSkipForward Icon indicating that media should skip forward.-
2072 \value SP_MediaSkipBackward Icon indicating that media should skip backward.-
2073 \value SP_MediaSeekForward Icon indicating that media should seek forward.-
2074 \value SP_MediaSeekBackward Icon indicating that media should seek backward.-
2075 \value SP_MediaVolume Icon indicating a volume control.-
2076 \value SP_MediaVolumeMuted Icon indicating a muted volume control.-
2077 \value SP_LineEditClearButton Icon for a standard clear button in a QLineEdit. This enum value was added in Qt 5.2.-
2078 \value SP_CustomBase Base value for custom standard pixmaps;-
2079 custom values must be greater than this value.-
2080-
2081 \sa standardIcon()-
2082*/-
2083-
2084/*!-
2085 \fn QPixmap QStyle::generatedIconPixmap(QIcon::Mode iconMode,-
2086 const QPixmap &pixmap, const QStyleOption *option) const-
2087-
2088 Returns a copy of the given \a pixmap, styled to conform to the-
2089 specified \a iconMode and taking into account the palette-
2090 specified by \a option.-
2091-
2092 The \a option parameter can pass extra information, but-
2093 it must contain a palette.-
2094-
2095 Note that not all pixmaps will conform, in which case the returned-
2096 pixmap is a plain copy.-
2097-
2098 \sa QIcon-
2099*/-
2100-
2101/*!-
2102 \fn QPixmap QStyle::standardPixmap(StandardPixmap standardPixmap, const QStyleOption *option, \-
2103 const QWidget *widget) const-
2104-
2105 \obsolete-
2106 Returns a pixmap for the given \a standardPixmap.-
2107-
2108 A standard pixmap is a pixmap that can follow some existing GUI-
2109 style or guideline. The \a option argument can be used to pass-
2110 extra information required when defining the appropriate-
2111 pixmap. The \a widget argument is optional and can also be used to-
2112 aid the determination of the pixmap.-
2113-
2114 Developers calling standardPixmap() should instead call standardIcon()-
2115 Developers who re-implemented standardPixmap() should instead re-implement-
2116 standardIcon().-
2117-
2118 \sa standardIcon()-
2119*/-
2120-
2121-
2122/*!-
2123 \fn QRect QStyle::visualRect(Qt::LayoutDirection direction, const QRect &boundingRectangle, const QRect &logicalRectangle)-
2124-
2125 Returns the given \a logicalRectangle converted to screen-
2126 coordinates based on the specified \a direction. The \a-
2127 boundingRectangle is used when performing the translation.-
2128-
2129 This function is provided to support right-to-left desktops, and-
2130 is typically used in implementations of the subControlRect()-
2131 function.-
2132-
2133 \sa QWidget::layoutDirection-
2134*/-
2135QRect QStyle::visualRect(Qt::LayoutDirection direction, const QRect &boundingRect, const QRect &logicalRect)-
2136{-
2137 if (direction == Qt::LeftToRight)
direction == Qt::LeftToRightDescription
TRUEnever evaluated
FALSEnever evaluated
0
2138 return logicalRect;
never executed: return logicalRect;
0
2139 QRect rect = logicalRect;-
2140 rect.translate(2 * (boundingRect.right() - logicalRect.right()) +-
2141 logicalRect.width() - boundingRect.width(), 0);-
2142 return rect;
never executed: return rect;
0
2143}-
2144-
2145/*!-
2146 \fn QPoint QStyle::visualPos(Qt::LayoutDirection direction, const QRect &boundingRectangle, const QPoint &logicalPosition)-
2147-
2148 Returns the given \a logicalPosition converted to screen-
2149 coordinates based on the specified \a direction. The \a-
2150 boundingRectangle is used when performing the translation.-
2151-
2152 \sa QWidget::layoutDirection-
2153*/-
2154QPoint QStyle::visualPos(Qt::LayoutDirection direction, const QRect &boundingRect, const QPoint &logicalPos)-
2155{-
2156 if (direction == Qt::LeftToRight)
direction == Qt::LeftToRightDescription
TRUEnever evaluated
FALSEnever evaluated
0
2157 return logicalPos;
never executed: return logicalPos;
0
2158 return QPoint(boundingRect.right() - logicalPos.x(), logicalPos.y());
never executed: return QPoint(boundingRect.right() - logicalPos.x(), logicalPos.y());
0
2159}-
2160-
2161/*!-
2162 Returns a new rectangle of the specified \a size that is aligned to the given \a-
2163 rectangle according to the specified \a alignment and \a direction.-
2164 */-
2165QRect QStyle::alignedRect(Qt::LayoutDirection direction, Qt::Alignment alignment, const QSize &size, const QRect &rectangle)-
2166{-
2167 alignment = visualAlignment(direction, alignment);-
2168 int x = rectangle.x();-
2169 int y = rectangle.y();-
2170 int w = size.width();-
2171 int h = size.height();-
2172 if ((alignment & Qt::AlignVCenter) == Qt::AlignVCenter)
(alignment & Q...::AlignVCenterDescription
TRUEnever evaluated
FALSEnever evaluated
0
2173 y += rectangle.size().height()/2 - h/2;
never executed: y += rectangle.size().height()/2 - h/2;
0
2174 else if ((alignment & Qt::AlignBottom) == Qt::AlignBottom)
(alignment & Q...t::AlignBottomDescription
TRUEnever evaluated
FALSEnever evaluated
0
2175 y += rectangle.size().height() - h;
never executed: y += rectangle.size().height() - h;
0
2176 if ((alignment & Qt::AlignRight) == Qt::AlignRight)
(alignment & Q...Qt::AlignRightDescription
TRUEnever evaluated
FALSEnever evaluated
0
2177 x += rectangle.size().width() - w;
never executed: x += rectangle.size().width() - w;
0
2178 else if ((alignment & Qt::AlignHCenter) == Qt::AlignHCenter)
(alignment & Q...::AlignHCenterDescription
TRUEnever evaluated
FALSEnever evaluated
0
2179 x += rectangle.size().width()/2 - w/2;
never executed: x += rectangle.size().width()/2 - w/2;
0
2180 return QRect(x, y, w, h);
never executed: return QRect(x, y, w, h);
0
2181}-
2182-
2183/*!-
2184 Transforms an \a alignment of Qt::AlignLeft or Qt::AlignRight-
2185 without Qt::AlignAbsolute into Qt::AlignLeft or Qt::AlignRight with-
2186 Qt::AlignAbsolute according to the layout \a direction. The other-
2187 alignment flags are left untouched.-
2188-
2189 If no horizontal alignment was specified, the function returns the-
2190 default alignment for the given layout \a direction.-
2191-
2192 QWidget::layoutDirection-
2193*/-
2194Qt::Alignment QStyle::visualAlignment(Qt::LayoutDirection direction, Qt::Alignment alignment)-
2195{-
2196 return QGuiApplicationPrivate::visualAlignment(direction, alignment);
never executed: return QGuiApplicationPrivate::visualAlignment(direction, alignment);
0
2197}-
2198-
2199/*!-
2200 Converts the given \a logicalValue to a pixel position. The \a min-
2201 parameter maps to 0, \a max maps to \a span and other values are-
2202 distributed evenly in-between.-
2203-
2204 This function can handle the entire integer range without-
2205 overflow, providing that \a span is less than 4096.-
2206-
2207 By default, this function assumes that the maximum value is on the-
2208 right for horizontal items and on the bottom for vertical items.-
2209 Set the \a upsideDown parameter to true to reverse this behavior.-
2210-
2211 \sa sliderValueFromPosition()-
2212*/-
2213-
2214int QStyle::sliderPositionFromValue(int min, int max, int logicalValue, int span, bool upsideDown)-
2215{-
2216 if (span <= 0 || logicalValue < min || max <= min)
span <= 0Description
TRUEnever evaluated
FALSEnever evaluated
logicalValue < minDescription
TRUEnever evaluated
FALSEnever evaluated
max <= minDescription
TRUEnever evaluated
FALSEnever evaluated
0
2217 return 0;
never executed: return 0;
0
2218 if (logicalValue > max)
logicalValue > maxDescription
TRUEnever evaluated
FALSEnever evaluated
0
2219 return upsideDown ? span : min;
never executed: return upsideDown ? span : min;
0
2220-
2221 uint range = max - min;-
2222 uint p = upsideDown ? max - logicalValue : logicalValue - min;
upsideDownDescription
TRUEnever evaluated
FALSEnever evaluated
0
2223-
2224 if (range > (uint)INT_MAX/4096) {
range > (uint)2147483647/4096Description
TRUEnever evaluated
FALSEnever evaluated
0
2225 double dpos = (double(p))/(double(range)/span);-
2226 return int(dpos);
never executed: return int(dpos);
0
2227 } else if (range > (uint)span) {
range > (uint)spanDescription
TRUEnever evaluated
FALSEnever evaluated
0
2228 return (2 * p * span + range) / (2*range);
never executed: return (2 * p * span + range) / (2*range);
0
2229 } else {-
2230 uint div = span / range;-
2231 uint mod = span % range;-
2232 return p * div + (2 * p * mod + range) / (2 * range);
never executed: return p * div + (2 * p * mod + range) / (2 * range);
0
2233 }-
2234 // equiv. to (p * span) / range + 0.5-
2235 // no overflow because of this implicit assumption:-
2236 // span <= 4096-
2237}-
2238-
2239/*!-
2240 \fn int QStyle::sliderValueFromPosition(int min, int max, int position, int span, bool upsideDown)-
2241-
2242 Converts the given pixel \a position to a logical value. 0 maps to-
2243 the \a min parameter, \a span maps to \a max and other values are-
2244 distributed evenly in-between.-
2245-
2246 This function can handle the entire integer range without-
2247 overflow.-
2248-
2249 By default, this function assumes that the maximum value is on the-
2250 right for horizontal items and on the bottom for vertical-
2251 items. Set the \a upsideDown parameter to true to reverse this-
2252 behavior.-
2253-
2254 \sa sliderPositionFromValue()-
2255*/-
2256-
2257int QStyle::sliderValueFromPosition(int min, int max, int pos, int span, bool upsideDown)-
2258{-
2259 if (span <= 0 || pos <= 0)
span <= 0Description
TRUEnever evaluated
FALSEnever evaluated
pos <= 0Description
TRUEnever evaluated
FALSEnever evaluated
0
2260 return upsideDown ? max : min;
never executed: return upsideDown ? max : min;
0
2261 if (pos >= span)
pos >= spanDescription
TRUEnever evaluated
FALSEnever evaluated
0
2262 return upsideDown ? min : max;
never executed: return upsideDown ? min : max;
0
2263-
2264 uint range = max - min;-
2265-
2266 if ((uint)span > range) {
(uint)span > rangeDescription
TRUEnever evaluated
FALSEnever evaluated
0
2267 int tmp = (2 * pos * range + span) / (2 * span);-
2268 return upsideDown ? max - tmp : tmp + min;
never executed: return upsideDown ? max - tmp : tmp + min;
0
2269 } else {-
2270 uint div = range / span;-
2271 uint mod = range % span;-
2272 int tmp = pos * div + (2 * pos * mod + span) / (2 * span);-
2273 return upsideDown ? max - tmp : tmp + min;
never executed: return upsideDown ? max - tmp : tmp + min;
0
2274 }-
2275 // equiv. to min + (pos*range)/span + 0.5-
2276 // no overflow because of this implicit assumption:-
2277 // pos <= span < sqrt(INT_MAX+0.0625)+0.25 ~ sqrt(INT_MAX)-
2278}-
2279-
2280/*!-
2281 Returns the style's standard palette.-
2282-
2283 Note that on systems that support system colors, the style's-
2284 standard palette is not used. In particular, the Windows XP,-
2285 Vista, and Mac styles do not use the standard palette, but make-
2286 use of native theme engines. With these styles, you should not set-
2287 the palette with QApplication::setPalette().-
2288-
2289 \sa QApplication::setPalette()-
2290 */-
2291QPalette QStyle::standardPalette() const-
2292{-
2293 QColor background = QColor(0xd4, 0xd0, 0xc8); // win 2000 grey-
2294-
2295 QColor light(background.lighter());-
2296 QColor dark(background.darker());-
2297 QColor mid(Qt::gray);-
2298 QPalette palette(Qt::black, background, light, dark, mid, Qt::black, Qt::white);-
2299 palette.setBrush(QPalette::Disabled, QPalette::WindowText, dark);-
2300 palette.setBrush(QPalette::Disabled, QPalette::Text, dark);-
2301 palette.setBrush(QPalette::Disabled, QPalette::ButtonText, dark);-
2302 palette.setBrush(QPalette::Disabled, QPalette::Base, background);-
2303 return palette;
never executed: return palette;
0
2304}-
2305-
2306/*!-
2307 \since 4.1-
2308-
2309 \fn QIcon QStyle::standardIcon(StandardPixmap standardIcon, const QStyleOption *option = 0,-
2310 const QWidget *widget = 0) const = 0;-
2311-
2312 Returns an icon for the given \a standardIcon.-
2313-
2314 The \a standardIcon is a standard pixmap which can follow some-
2315 existing GUI style or guideline. The \a option argument can be-
2316 used to pass extra information required when defining the-
2317 appropriate icon. The \a widget argument is optional and can also-
2318 be used to aid the determination of the icon.-
2319*/-
2320-
2321/*!-
2322 \since 4.3-
2323-
2324 \fn int QStyle::layoutSpacing(QSizePolicy::ControlType control1,-
2325 QSizePolicy::ControlType control2, Qt::Orientation orientation,-
2326 const QStyleOption *option = 0, const QWidget *widget = 0) const-
2327-
2328 Returns the spacing that should be used between \a control1 and-
2329 \a control2 in a layout. \a orientation specifies whether the-
2330 controls are laid out side by side or stacked vertically. The \a-
2331 option parameter can be used to pass extra information about the-
2332 parent widget. The \a widget parameter is optional and can also-
2333 be used if \a option is 0.-
2334-
2335 This function is called by the layout system. It is used only if-
2336 PM_LayoutHorizontalSpacing or PM_LayoutVerticalSpacing returns a-
2337 negative value.-
2338-
2339 \sa combinedLayoutSpacing()-
2340*/-
2341-
2342/*!-
2343 \since 4.3-
2344-
2345 Returns the spacing that should be used between \a controls1 and-
2346 \a controls2 in a layout. \a orientation specifies whether the-
2347 controls are laid out side by side or stacked vertically. The \a-
2348 option parameter can be used to pass extra information about the-
2349 parent widget. The \a widget parameter is optional and can also-
2350 be used if \a option is 0.-
2351-
2352 \a controls1 and \a controls2 are OR-combination of zero or more-
2353 \l{QSizePolicy::ControlTypes}{control types}.-
2354-
2355 This function is called by the layout system. It is used only if-
2356 PM_LayoutHorizontalSpacing or PM_LayoutVerticalSpacing returns a-
2357 negative value.-
2358-
2359 \sa layoutSpacing()-
2360*/-
2361int QStyle::combinedLayoutSpacing(QSizePolicy::ControlTypes controls1,-
2362 QSizePolicy::ControlTypes controls2, Qt::Orientation orientation,-
2363 QStyleOption *option, QWidget *widget) const-
2364{-
2365 QSizePolicy::ControlType array1[MaxBits];-
2366 QSizePolicy::ControlType array2[MaxBits];-
2367 int count1 = unpackControlTypes(controls1, array1);-
2368 int count2 = unpackControlTypes(controls2, array2);-
2369 int result = -1;-
2370-
2371 for (int i = 0; i < count1; ++i) {
i < count1Description
TRUEnever evaluated
FALSEnever evaluated
0
2372 for (int j = 0; j < count2; ++j) {
j < count2Description
TRUEnever evaluated
FALSEnever evaluated
0
2373 int spacing = layoutSpacing(array1[i], array2[j], orientation, option, widget);-
2374 result = qMax(spacing, result);-
2375 }
never executed: end of block
0
2376 }
never executed: end of block
0
2377 return result;
never executed: return result;
0
2378}-
2379-
2380// ### Qt 6: Remove in favor of template<class T> QDebug operator<<(QDebug, const QFlags<T> &).-
2381#if QT_VERSION < QT_VERSION_CHECK(6,0,0)-
2382QT_BEGIN_INCLUDE_NAMESPACE-
2383# include <QDebug>-
2384QT_END_INCLUDE_NAMESPACE-
2385-
2386# if !defined(QT_NO_DEBUG_STREAM)-
2387QDebug operator<<(QDebug debug, QStyle::State state)-
2388{-
2389# if !defined(QT_NO_DEBUG)-
2390 return operator<< <QStyle::StateFlag>(debug, state);
never executed: return operator<< <QStyle::StateFlag>(debug, state);
0
2391# else-
2392 Q_UNUSED(state);-
2393 return debug;-
2394# endif-
2395}-
2396# endif // !QT_NO_DEBUG_STREAM-
2397#endif // QT_VERSION < QT_VERSION_CHECK(6,0,0)-
2398-
2399/*!-
2400 \since 4.6-
2401-
2402 \fn const QStyle *QStyle::proxy() const-
2403-
2404 This function returns the current proxy for this style.-
2405 By default most styles will return themselves. However-
2406 when a proxy style is in use, it will allow the style to-
2407 call back into its proxy.-
2408*/-
2409const QStyle * QStyle::proxy() const-
2410{-
2411 Q_D(const QStyle);-
2412 return d->proxyStyle;
never executed: return d->proxyStyle;
0
2413}-
2414-
2415/* \internal-
2416-
2417 This function sets the base style that style calls will be-
2418 redirected to. Note that ownership is not transferred.-
2419*/-
2420void QStyle::setProxy(QStyle *style)-
2421{-
2422 Q_D(QStyle);-
2423 d->proxyStyle = style;-
2424}
never executed: end of block
0
2425-
2426QT_END_NAMESPACE-
2427-
2428#include "moc_qstyle.cpp"-
Source codeSwitch to Preprocessed file

Generated by Squish Coco Non-Commercial 4.3.0-BETA-master-30-08-2018-4cb69e9