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