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

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