1// Copyright (C) 2022 The Qt Company Ltd.
2// Copyright (C) 2020 Klaralvdalens Datakonsult AB, a KDAB Group company, info@kdab.com, author Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
3// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GFDL-1.3-no-invariants-only
10 \brief The Qt namespace contains miscellaneous identifiers
11 used throughout the Qt library.
17 This type is used to signify an object's orientation.
22 Orientation is used with QScrollBar for example.
26 \enum Qt::AlignmentFlag
28 This enum type is used to describe alignment. It contains
29 horizontal and vertical flags that can be combined to produce
32 The \l{TextElideMode} enum can also be used in many situations
33 to fine-tune the appearance of aligned text.
35 The horizontal flags are:
37 \value AlignLeft Aligns with the left edge.
38 \value AlignRight Aligns with the right edge.
39 \value AlignHCenter Centers horizontally in the available space.
40 \value AlignJustify Justifies the text in the available space.
42 The vertical flags are:
44 \value AlignTop Aligns with the top.
45 \value AlignBottom Aligns with the bottom.
46 \value AlignVCenter Centers vertically in the available space.
47 \value AlignBaseline Aligns with the baseline.
49 You can use only one of the horizontal flags at a time. There is
50 one two-dimensional flag:
52 \value AlignCenter Centers in both dimensions.
54 You can use at most one horizontal and one vertical flag at a
55 time. Qt::AlignCenter counts as both horizontal and vertical.
57 Three enum values are useful in applications that can be run in
60 \value AlignAbsolute If the widget's layout direction is
61 Qt::RightToLeft (instead of Qt::LeftToRight, the default),
62 Qt::AlignLeft refers to the \e right edge and Qt::AlignRight
63 to the \e left edge. This is normally the desired behavior.
64 If you want Qt::AlignLeft to always mean "left" and
65 Qt::AlignRight to always mean "right", combine the flag with
67 \value AlignLeading Synonym for Qt::AlignLeft.
68 \value AlignTrailing Synonym for Qt::AlignRight.
72 \value AlignHorizontal_Mask
73 \value AlignVertical_Mask
75 Conflicting combinations of flags have undefined meanings.
79 \enum Qt::ApplicationAttribute
81 This enum describes attributes that change the behavior of
82 application-wide features. These are enabled and disabled using
83 QCoreApplication::setAttribute(), and can be tested for with
84 QCoreApplication::testAttribute().
87 \value AA_DontShowIconsInMenus Actions with the Icon property won't be
88 shown in any menus unless specifically set by the
89 QAction::iconVisibleInMenu property.
90 Menus that are currently open or menus already created in the native
91 \macos menubar \e{may not} pick up a change in this attribute. Changes
92 in the QAction::iconVisibleInMenu property will always be picked up.
94 \value AA_DontShowShortcutsInContextMenus Actions with the Shortcut property
95 won't be shown in any shortcut menus unless specifically set by the
96 QAction::shortcutVisibleInContextMenu property. This value was added
97 in Qt 5.10, and is by default based on the value reported by
98 QStyleHints::showShortcutsInContextMenus(). To override the default
99 behavior, set the style hint before QCoreApplication has been
100 instantiated, or set this attribute after QCoreApplication has
103 \value AA_NativeWindows Ensures that widgets have native windows.
105 \value AA_DontCreateNativeWidgetSiblings Ensures that siblings of native
106 widgets stay non-native unless specifically set by the
107 Qt::WA_NativeWindow attribute.
109 \value AA_PluginApplication Indicates that Qt is used to author a plugin. Depending
110 on the operating system, it suppresses specific initializations that do not
111 necessarily make sense in the plugin case.
112 For example on \macos, this includes avoiding loading our nib for the main
113 menu and not taking possession of the native menu bar. Setting this
114 attribute to true will also set the AA_DontUseNativeMenuBar attribute
115 to true. It also disables native event filters.
116 This attribute must be set before QGuiApplication constructed.
117 This value was added in Qt 5.7.
119 \value AA_DontUseNativeMenuBar All menubars created while this attribute is
120 set to true won't be used as a native menubar (e.g, the menubar at
121 the top of the main screen on \macos).
123 \value AA_MacDontSwapCtrlAndMeta Keyboard shortcuts on Apple platforms are typically
124 based on the Command (or Cmd) keyboard modifier, represented by
125 the ⌘ symbol. For example, the 'Copy' action is Command+C (⌘+C).
126 To ease cross platform development Qt will by default remap Command
127 to the Qt::ControlModifier, to align with other platforms. This
128 allows creating keyboard shortcuts such as "Ctrl+J", which on
129 \macos will then map to Command+J, as expected by \macos users. The
130 actual Control (or Ctrl) modifier on Apple platforms, represented by ⌃,
131 is mapped to Qt::MetaModifier.
133 When this attribute is true Qt will not do the remapping, and pressing
134 the Command modifier will result in Qt::MetaModifier, while pressing
135 the Control modifier will result in Qt::ControlModifier.
137 Note that the \l QKeySequence::StandardKey sequences will always be
138 based on the same modifier (i.e., QKeySequence::Copy will be
139 Command+C regardless of the value set), but what is output for
140 QKeySequence::toString() will be different.
142 \value AA_Use96Dpi Assume the screen has a resolution of 96 DPI rather
143 than using the OS-provided resolution. This will cause font rendering
144 to be consistent in pixels-per-point across devices rather than
145 defining 1 point as 1/72 inch.
147 \value AA_SynthesizeTouchForUnhandledMouseEvents All mouse events
148 that are not accepted by the application will be translated
149 to touch events instead.
151 \value AA_SynthesizeMouseForUnhandledTouchEvents All touch events
152 that are not accepted by the application will be translated
153 to left button mouse events instead. This attribute is enabled
156 \value AA_ForceRasterWidgets Make top-level widgets use pure raster surfaces,
157 and do not support non-native GL-based child widgets.
159 \value AA_UseDesktopOpenGL Forces the usage of desktop OpenGL (for example,
160 \e opengl32.dll or \e libGL.so) on platforms that use dynamic loading
161 of the OpenGL implementation. This attribute must be set before
162 QGuiApplication is constructed.
163 This value was added in Qt 5.3.
165 \value AA_UseOpenGLES Forces the usage of OpenGL ES 2.0 or higher on
166 platforms that use dynamic loading of the OpenGL implementation.
167 This attribute must be set before QGuiApplication is constructed.
168 This value was added in Qt 5.3.
170 \value AA_UseSoftwareOpenGL Forces the usage of a software based OpenGL
171 implementation on platforms that use dynamic loading of the OpenGL
172 implementation. This will typically be a patched build of
173 \l{http://www.mesa3d.org/llvmpipe.html}{Mesa llvmpipe}, providing
174 OpenGL 2.1. The value may have no effect if no such OpenGL
175 implementation is available. The default name of this library is
176 \c opengl32sw.dll and can be overridden by setting the environment
177 variable \e QT_OPENGL_DLL. See the platform-specific pages, for
178 instance \l{Qt for Windows}, for more information. This attribute
179 must be set before QGuiApplication is constructed.
180 This value was added in Qt 5.4.
182 \value AA_ShareOpenGLContexts Enables resource sharing between the OpenGL
183 contexts used by classes like QOpenGLWidget and QQuickWidget. This
184 allows sharing OpenGL resources, like textures, between QOpenGLWidget
185 instances that belong to different top-level windows. This attribute
186 must be set before QGuiApplication is constructed.
187 This value was added in Qt 5.4.
189 \value AA_SetPalette Indicates whether a palette was explicitly set on the
190 QGuiApplication. This value was added in Qt 5.5.
192 \value AA_UseStyleSheetPropagationInWidgetStyles By default, Qt Style Sheets
193 disable regular QWidget palette and font propagation. When this flag
194 is enabled, font and palette changes propagate as though the user had
195 manually called the corresponding QWidget methods. See
196 \l{The Style Sheet Syntax#Inheritance}{The Style Sheet Syntax - Inheritance}
198 This value was added in Qt 5.7.
200 \value AA_DontUseNativeDialogs All dialogs created while this attribute is
201 set to true won't use the native dialogs provided by the platform.
202 This value was added in Qt 5.7.
204 \value AA_SynthesizeMouseForUnhandledTabletEvents All tablet events
205 that are not accepted by the application will be translated
206 to mouse events instead. This attribute is enabled
208 This value was added in Qt 5.7.
210 \value AA_CompressHighFrequencyEvents Enables compression of certain frequent events.
211 On the X11 windowing system, the default value is true, which means that
212 QEvent::MouseMove, QEvent::TouchUpdate, and changes in window size and
213 position will be combined whenever they occur more frequently than the
214 application handles them, so that they don't accumulate and overwhelm the
216 On Windows 8 and above the default value is also true, but it only applies
217 to touch events. Mouse and window events remain unaffected by this flag.
218 On other platforms, the default is false.
219 (In the future, the compression feature may be implemented across platforms.)
220 You can test the attribute to see whether compression is enabled.
221 If your application needs to handle all events with no compression,
222 you can unset this attribute. Notice that input events from tablet devices
223 will not be compressed. See AA_CompressTabletEvents if you want these to be
225 This value was added in Qt 5.7.
227 \value AA_CompressTabletEvents Enables compression of input events from tablet devices.
228 Notice that AA_CompressHighFrequencyEvents must be true for events compression
229 to be enabled, and that this flag extends the former to tablet events.
230 Currently supported on the X11 windowing system, Windows 8 and above.
231 The default value is false.
232 This value was added in Qt 5.10.
234 \value AA_DontCheckOpenGLContextThreadAffinity When making a context
235 current using QOpenGLContext, do not check that the
236 \l{QObject#Thread Affinity}{QObject thread affinity}
237 of the QOpenGLContext object is the same thread calling
238 \l{QOpenGLContext::makeCurrent}{makeCurrent()}.
239 This value was added in Qt 5.8.
241 \value AA_DisableShaderDiskCache Disables caching of shader program binaries
242 on disk. By default Qt Quick, QPainter's OpenGL backend, and any
243 application using QOpenGLShaderProgram with one of its
244 \e addCacheableShaderFromSource overloads will employ a disk-based
245 program binary cache in either the shared or per-process cache storage
246 location, on systems that support \e glProgramBinary(). In the unlikely
247 event of this being problematic, set this attribute to disable all
248 disk-based caching of shaders.
250 \value AA_DisableSessionManager Disables the QSessionManager.
251 By default Qt will connect to a running session manager for a GUI
252 application on supported platforms, use of a session manager may be
253 redundant for system services.
254 This attribute must be set before QGuiApplication is constructed.
255 This value was added in 5.14
257 \value AA_DisableNativeVirtualKeyboard When this attribute is set, the native
258 on-screen virtual keyboard will not be shown automatically when a
259 text input widget gains focus on a system without a physical keyboard.
260 Currently supported on the Windows platform only.
261 This value was added in 5.15
263 \omitvalue AA_AttributeCount
264 \omitvalue AA_EnableHighDpiScaling
265 \omitvalue AA_UseHighDpiPixmaps
266 \omitvalue AA_DisableHighDpiScaling
270 \enum Qt::MouseButton
272 This enum type describes the different mouse buttons.
274 \value NoButton The button state does not refer to any
275 button (see QMouseEvent::button()).
277 \value AllButtons This value corresponds to a mask of all
278 possible mouse buttons. Use to set the 'acceptedButtons'
279 property of a MouseArea to accept ALL mouse buttons.
281 \value LeftButton The left button is pressed, or an event refers
282 to the left button. (The left button may be the right button on
284 \value RightButton The right button.
285 \value MiddleButton The middle button.
287 \value BackButton The 'Back' button. (Typically present on
288 the 'thumb' side of a mouse with extra buttons. This is NOT
290 \value XButton1 The 'Back' Button.
291 \value ExtraButton1 The 'Back' Button.
293 \value ForwardButton The 'Forward' Button. (Typically present
294 beside the 'Back' button, and also pressed by the thumb.)
295 \value XButton2 The 'Forward Button.
296 \value ExtraButton2 The 'Forward' Button.
298 \value TaskButton The 'Task' Button.
299 \value ExtraButton3 The 'Task' Button.
301 \value ExtraButton4 The 7th non-wheel Mouse Button.
302 \value ExtraButton5 The 8th non-wheel Mouse Button.
303 \value ExtraButton6 The 9th non-wheel Mouse Button.
304 \value ExtraButton7 The 10th non-wheel Mouse Button.
305 \value ExtraButton8 The 11th non-wheel Mouse Button.
306 \value ExtraButton9 The 12th non-wheel Mouse Button.
307 \value ExtraButton10 The 13th non-wheel Mouse Button.
308 \value ExtraButton11 The 14th non-wheel Mouse Button.
309 \value ExtraButton12 The 15th non-wheel Mouse Button.
310 \value ExtraButton13 The 16th non-wheel Mouse Button.
311 \value ExtraButton14 The 17th non-wheel Mouse Button.
312 \value ExtraButton15 The 18th non-wheel Mouse Button.
313 \value ExtraButton16 The 19th non-wheel Mouse Button.
314 \value ExtraButton17 The 20th non-wheel Mouse Button.
315 \value ExtraButton18 The 21st non-wheel Mouse Button.
316 \value ExtraButton19 The 22nd non-wheel Mouse Button.
317 \value ExtraButton20 The 23rd non-wheel Mouse Button.
318 \value ExtraButton21 The 24th non-wheel Mouse Button.
319 \value ExtraButton22 The 25th non-wheel Mouse Button.
320 \value ExtraButton23 The 26th non-wheel Mouse Button.
321 \value ExtraButton24 The 27th non-wheel Mouse Button.
323 \omitvalue MaxMouseButton
324 \omitvalue MouseButtonMask
326 \note Some models of multi-button mice are pre-configured with
327 high-numbered Buttons emulating keyboard sequences, for use in
328 specific games. In order for these Buttons to be seen as
329 actual 'Mouse Buttons', the device must be re-configured (using
330 the vendor's configuration tool).
332 \sa KeyboardModifier, Modifier
336 \enum Qt::KeyboardModifier
338 This enum describes the modifier keys.
340 \value NoModifier No modifier key is pressed.
341 \value ShiftModifier A Shift key on the keyboard is pressed.
342 \value ControlModifier A Ctrl key on the keyboard is pressed.
343 \value AltModifier An Alt key on the keyboard is pressed.
344 \value MetaModifier A Meta key on the keyboard is pressed.
345 \value KeypadModifier A keypad button is pressed.
346 \value GroupSwitchModifier X11 only (unless activated on Windows by a command line argument).
347 A Mode_switch key on the keyboard is pressed.
349 \omitvalue KeyboardModifierMask
351 \note On \macos, the \c ControlModifier value corresponds to
352 the Command keys on the keyboard, and the \c MetaModifier value
353 corresponds to the Control keys. The \c KeypadModifier value will also be set
354 when an arrow key is pressed as the arrow keys are considered part of the
357 \note On Windows Keyboards, Qt::MetaModifier and Qt::Key_Meta are mapped
360 \sa MouseButton, Modifier
366 This enum provides shorter names for the keyboard modifier keys
369 \note On \macos, the \c CTRL value corresponds to
370 the Command keys on the keyboard, and the \c META value
371 corresponds to the Control keys.
373 \value SHIFT The Shift keys provided on all standard keyboards.
374 \value META The Meta keys.
375 \value CTRL The Ctrl keys.
376 \value ALT The normal Alt keys, but not keys like AltGr.
377 \omitvalue MODIFIER_MASK
379 \sa KeyboardModifier, MouseButton
383 \enum Qt::GlobalColor
385 Qt's predefined QColor objects:
387 \value white \span {id="color-white"} {White (#ffffff) }
388 \value black \span {id="color-black"} {Black (#000000) }
389 \value red \span {id="color-red"} {Red (#ff0000) }
390 \value darkRed \span {id="color-darkRed"} {Dark red (#800000) }
391 \value green \span {id="color-green"} {Green (#00ff00) }
392 \value darkGreen \span {id="color-darkGreen"} {Dark green (#008000) }
393 \value blue \span {id="color-blue"} {Blue (#0000ff) }
394 \value darkBlue \span {id="color-darkBlue"} {Dark blue (#000080) }
395 \value cyan \span {id="color-cyan"} {Cyan (#00ffff) }
396 \value darkCyan \span {id="color-darkCyan"} {Dark cyan (#008080) }
397 \value magenta \span {id="color-magenta"} {Magenta (#ff00ff) }
398 \value darkMagenta \span {id="color-darkMagenta"} {Dark magenta (#800080) }
399 \value yellow \span {id="color-yellow"} {Yellow (#ffff00) }
400 \value darkYellow \span {id="color-darkYellow"} {Dark yellow (#808000) }
401 \value gray \span {id="color-gray"} {Gray (#a0a0a4) }
402 \value darkGray \span {id="color-darkGray"} {Dark gray (#808080) }
403 \value lightGray \span {id="color-lightGray"} {Light gray (#c0c0c0) }
404 \value transparent a transparent black value (i.e., QColor(0, 0, 0, 0))
405 \value color0 0 pixel value (for bitmaps)
406 \value color1 1 pixel value (for bitmaps)
415 This enum type defines the pen styles that can be drawn using
416 QPainter. The styles are:
420 \li \inlineimage qpen-solid.png
421 \li \inlineimage qpen-dash.png
422 \li \inlineimage qpen-dot.png
428 \li \inlineimage qpen-dashdot.png
429 \li \inlineimage qpen-dashdotdot.png
430 \li \inlineimage qpen-custom.png
433 \li Qt::DashDotDotLine
434 \li Qt::CustomDashLine
437 \value NoPen no line at all. For example, QPainter::drawRect()
438 fills but does not draw any boundary line.
440 \value SolidLine A plain line.
441 \value DashLine Dashes separated by a few pixels.
442 \value DotLine Dots separated by a few pixels.
443 \value DashDotLine Alternate dots and dashes.
444 \value DashDotDotLine One dash, two dots, one dash, two dots.
445 \value CustomDashLine A custom pattern defined using
446 QPainterPathStroker::setDashPattern().
454 \enum Qt::PenCapStyle
456 This enum type defines the pen cap styles supported by Qt, i.e.
457 the line end caps that can be drawn using QPainter.
461 \li \inlineimage qpen-square.png
462 \li \inlineimage qpen-flat.png
463 \li \inlineimage qpen-roundcap.png
470 \value FlatCap a square line end that does not cover the end
472 \value SquareCap a square line end that covers the end point and
473 extends beyond it by half the line width.
474 \value RoundCap a rounded line end.
475 \omitvalue MPenCapStyle
481 \enum Qt::PenJoinStyle
483 This enum type defines the pen join styles supported by Qt, i.e.
484 which joins between two connected lines can be drawn using
489 \li \inlineimage qpen-bevel.png
490 \li \inlineimage qpen-miter.png
491 \li \inlineimage qpen-roundjoin.png
498 \value MiterJoin The outer edges of the lines are extended to
499 meet at an angle, and this area is filled.
500 \value BevelJoin The triangular notch between the two lines is filled.
501 \value RoundJoin A circular arc between the two lines is filled.
502 \value SvgMiterJoin A miter join corresponding to the definition of
503 a miter join in the \l{http://www.w3.org/TR/SVGMobile12/}{SVG 1.2 Tiny} specification.
504 \omitvalue MPenJoinStyle
512 This enum type defines the brush styles supported by Qt, i.e. the
513 fill pattern of shapes drawn using QPainter.
515 \image brush-styles.png Brush Styles
517 \value NoBrush No brush pattern.
518 \value SolidPattern Uniform color.
519 \value Dense1Pattern Extremely dense brush pattern.
520 \value Dense2Pattern Very dense brush pattern.
521 \value Dense3Pattern Somewhat dense brush pattern.
522 \value Dense4Pattern Half dense brush pattern.
523 \value Dense5Pattern Somewhat sparse brush pattern.
524 \value Dense6Pattern Very sparse brush pattern.
525 \value Dense7Pattern Extremely sparse brush pattern.
526 \value HorPattern Horizontal lines.
527 \value VerPattern Vertical lines.
528 \value CrossPattern Crossing horizontal and vertical lines.
529 \value BDiagPattern Backward diagonal lines.
530 \value FDiagPattern Forward diagonal lines.
531 \value DiagCrossPattern Crossing diagonal lines.
532 \value LinearGradientPattern Linear gradient (set using a dedicated QBrush constructor).
533 \value ConicalGradientPattern Conical gradient (set using a dedicated QBrush constructor).
534 \value RadialGradientPattern Radial gradient (set using a dedicated QBrush constructor).
535 \value TexturePattern Custom pattern (see QBrush::setTexture()).
543 This enum type is used to define some modifier flags. Some of
544 these flags only make sense in the context of printing:
546 \value TextSingleLine Treats all whitespace as spaces and prints just
548 \value TextDontClip If it's impossible to stay within the given bounds,
550 \value TextExpandTabs Makes the U+0009 (ASCII tab) character move to
552 \value TextShowMnemonic Displays the string "\&P" as \underline{P}
553 For an ampersand, use "\&\&".
554 \value TextWordWrap Breaks lines at appropriate points, e.g. at word
556 \value TextWrapAnywhere Breaks lines anywhere, even within words.
557 \value TextHideMnemonic Same as Qt::TextShowMnemonic but doesn't draw
559 \value TextDontPrint Treat this text as "hidden" and don't print it.
560 \value TextIncludeTrailingSpaces When this option is set,
561 QTextLine::naturalTextWidth() and QTextLine::naturalTextRect() will
562 return a value that includes the width of trailing spaces in the
563 text; otherwise this width is excluded.
564 \value TextJustificationForced Ensures that text lines are justified.
566 \omitvalue TextLongestVariant
567 \omitvalue TextForceLeftToRight
568 \omitvalue TextForceRightToLeft
570 You can use as many modifier flags as you want, except that
571 Qt::TextSingleLine and Qt::TextWordWrap cannot be combined.
573 Flags that are inappropriate for a given use are generally
582 \value TransparentMode
587 \enum Qt::ConnectionType
589 This enum describes the types of connection that can be used
590 between signals and slots. In particular, it determines whether a
591 particular signal is delivered to a slot immediately or queued for
592 delivery at a later time.
594 \value AutoConnection
595 \b (Default) If the receiver \l{QObject#Thread Affinity}{lives in} the
596 thread that emits the signal, Qt::DirectConnection is used. Otherwise,
597 Qt::QueuedConnection is used. The connection type is
598 determined when the signal is emitted.
600 \value DirectConnection
601 The slot is invoked immediately when the signal is
602 emitted. The slot is executed in the signalling thread.
604 \value QueuedConnection
605 The slot is invoked when control returns to the event loop
606 of the receiver's thread. The slot is executed in the
609 \value BlockingQueuedConnection
610 Same as Qt::QueuedConnection, except that the signalling thread blocks
611 until the slot returns. This connection must \e not be used if the
612 receiver lives in the signalling thread, or else the application
615 \value UniqueConnection
616 This is a flag that can be combined with any one of the above
617 connection types, using a bitwise OR. When Qt::UniqueConnection is
618 set, QObject::connect() will fail if the connection already exists
619 (i.e. if the same signal is already connected to the same slot
620 for the same pair of objects). This flag was introduced in Qt 4.6.
622 \value SingleShotConnection
623 This is a flag that can be combined with any one of the above
624 connection types, using a bitwise OR. When Qt::SingleShotConnection
625 is set, the slot is going to be called only once; the connection
626 will be automatically broken when the signal is emitted.
627 This flag was introduced in Qt 6.0.
629 With queued connections, the parameters must be of types that are
630 known to Qt's meta-object system, because Qt needs to copy the
631 arguments to store them in an event behind the scenes. If you try
632 to use a queued connection and get the error message:
634 \snippet code/doc_src_qnamespace.qdoc 0
636 Call qRegisterMetaType() to register the data type before you
637 establish the connection.
639 When using signals and slots with multiple threads, see \l{Signals and Slots Across Threads}.
641 \sa {Thread Support in Qt}, QObject::connect(), qRegisterMetaType(), Q_DECLARE_METATYPE()
647 \value TextDate The default Qt format, which includes the day and month
648 name, the day number in the month, and the year in full. The day and month
649 names will be short names in English (C locale). This effectively uses, for
650 a date, format \c{ddd MMM d yyyy}, for a time \c{HH:mm:ss} and combines
651 these as \c{ddd MMM d HH:mm:ss yyyy} for a date-time, with an optional
652 zone-offset suffix, where relevant. When reading from a string, a
653 fractional part is also recognized on the seconds of a time part, as
654 \c{HH:mm:ss.zzz}, and some minor variants on the format may be recognized,
655 for compatibility with earlier versions of Qt and with changes to the format
656 planned for the future. In particular, the zone-offset suffix presently uses
657 \c{GMT[±tzoff]} with a \c{tzoff} in \c{HH[[:]mm]} format (two-digit hour and
658 optional two-digit minutes, with optional colon separator); this shall
659 change to use \c{UTC} in place of \c{GMT} in a future release of Qt, so the
660 planned \c{UTC} format is recognized.
662 \value ISODateWithMs \l{ISO 8601} extended format: uses \c{yyyy-MM-dd} for
663 dates, \c{HH:mm:ss.zzz} for times or \c{yyyy-MM-ddTHH:mm:ss.zzz}
664 (e.g. 2017-07-24T15:46:29.739) for combined dates and times, optionally with
665 a time-zone suffix (Z for UTC otherwise an offset as ±HH:mm) where
666 appropriate. When parsed, a single space, \c{' '}, may be used in place of
667 the \c{'T'} separator between date and time; no other spacing characters are
668 permitted. This format also accepts \c{HH:mm} and plain \c{HH} formats for
669 the time part, either of which may include a fractional part, \c{HH:mm.zzz}
670 or \c{HH.zzz}, applied to the last field present (hour or minute).
672 \value ISODate \l{ISO 8601} extended format, as for \c ISODateWithMs, but
673 omitting the milliseconds (\c{.zzz}) part when converting to a string. There
674 is no difference when reading from a string: if a fractional part is present
675 on the last time field, either format will accept it.
677 \value RFC2822Date \l{RFC 2822}, \l{RFC 850} and \l{RFC 1036} format: when
678 converting dates to string form, format \c{dd MMM yyyy} is used, for times
679 the format is \c{HH:mm:ss}. For combined date and time, these are combined
680 as \c{dd MMM yyyy HH:mm:ss ±tzoff} (omitting the optional leading day of the
681 week from the first format recognized). When reading from a string either
682 \c{[ddd,] dd MMM yyyy [HH:mm[:ss]][ ±tzoff]} or \c{ddd MMM dd[ HH:mm:ss]
683 yyyy[ ±tzoff]} will be recognized for combined dates and times, where
684 \c{tzoff} is a timezone offset in \c{HHmm} format. Arbitrary spacing may
685 appear before or after the text and any non-empty spacing may replace the
686 spaces in this format. For dates and times separately, the same formats are
687 matched and the unwanted parts are ignored. In particular, note that a time
688 is not recognized without an accompanying date.
690 \note For \c ISODate formats, each \c y, \c M and \c d represents a single
691 digit of the year, month, and day used to specify the date. Each \c H, \c m,
692 and \c s represents a single digit of the hour (up to 24), minute and second
693 used to specify the time. An hour of 24, with zero for all other time
694 fields, is understood as the start of the next day. A \c{.zzz} stands for a
695 fractional part suffix on the preceding field, which may be separated from
696 that field either by a comma \c{','} or the dot \c{'.'} shown. Precision
697 beyond milliseconds is accepted but discarded, rounding to the nearest
698 representable millisecond. The presence of a literal \c T character is used
699 to separate the date and time when both are specified. For the \c TextDate
700 and \c RFC2822Date formats, \c{ddd} stands for the first three letters of
701 the name of the day of the week and \c{MMM} stands for the first three
702 letters of the month name. The names of days and months are always in
703 English (C locale) regardless of user preferences or system settings. The
704 other format characters have the same meaning as for the ISODate format,
705 except that 24 is not accepted as an hour. Parts of a format enclosed in
706 square brackets \c{[...]} are optional; the square brackets do not form part
707 of the format. The plus-or-minus character \c{'±'} here stands for either
708 sign character, \c{'-'} for minus or \c{'+'} for plus.
710 \note Zone offsets are measured positive to the east of Greenwich, negative
711 to the west, as is usual for UTC-based offset notations (conflicting with
712 some GMT-based zones-names, such as \c{Etc/GMT+3}, which use the opposite
715 \sa QDate::toString(), QTime::toString(), QDateTime::toString(),
716 QDate::fromString(), QTime::fromString(), QDateTime::fromString()
722 \value LocalTime Local time, controlled by a system time-zone setting.
723 \value UTC Coordinated Universal Time.
724 \value OffsetFromUTC An offset in seconds from Coordinated Universal Time.
725 \value TimeZone A named time zone.
727 Both LocalTime and TimeZone will take care of transitions, such as
728 the start and end of daylight-saving time. UTC is the standard
729 time relative to which time-zones are usually specified: Greenwich
730 Mean Time has zero offset from it. Neither UTC nor OffsetFromUTC
733 When specifying a datetime using OffsetFromUTC, the offset from UTC must
734 also be supplied (it is measured in seconds). To specify a datetime using
735 TimeZone, a QTimeZone must be supplied. From Qt 6.5, a QTimeZone can now
736 package a timespec with, where needed, an offset as a lightweight time
737 description, so that passing a QTimeZone now provides a uniform way to use
738 datetime APIs, saving the need to call them differently for different
741 \note After a change to the system time-zone setting, the behavior
742 of LocalTime-based QDateTime objects created before the change is
743 undefined: QDateTime may have cached data that the change
744 invalidates. (This is not triggered by \e transitions of the system
745 time-zone.) In long-running processes, updates to the system's
746 time-zone data (e.g. when politicians change the rules for a zone)
747 may likewise lead to conflicts between the updated time-zone
748 information and data cached by QDateTime objects created before
749 the update, using either LocalTime or TimeZone.
751 \sa QTimeZone, QDateTime
767 \enum Qt::CaseSensitivity
769 \value CaseInsensitive
774 \enum Qt::ToolBarArea
776 \value LeftToolBarArea
777 \value RightToolBarArea
778 \value TopToolBarArea
779 \value BottomToolBarArea
780 \value AllToolBarAreas
783 \omitvalue ToolBarArea_Mask
787 \enum Qt::DockWidgetArea
789 Represents the areas a QDockWidget can be plugged to.
790 \note A floating dock widget with tabs can be docked anywhere.
792 \value LeftDockWidgetArea The left dock area of a QMainWindow.
793 \value RightDockWidgetArea The right dock area of a QMainWindow.
794 \value TopDockWidgetArea The top dock area of a QMainWindow.
795 \value BottomDockWidgetArea The bottom dock area of a QMainWindow.
796 \value AllDockWidgetAreas All dock widget areas (default).
797 \value NoDockWidgetArea No dock widget areas.
799 \omitvalue DockWidgetArea_Mask
800 \sa QDockWidget::setAllowedAreas, QDockWidget::isAreaAllowed
804 \enum Qt::ColorScheme
806 Represents the appearance of an application's theme,
807 defined by QGuiApplication::palette().
809 \value Unknown The appearance is unknown.
810 \value Light The background colors are lighter than the text color, i.e. the theme is light.
811 \value Dark The background colors are darker than the text color, i.e. the theme is dark.
815 \enum Qt::ImageConversionFlag
817 The options marked "(default)" are set if no other values from
818 the list are included (since the defaults are zero):
820 Color/Mono preference (ignored for QBitmap):
822 \value AutoColor (default) - If the image has \l{QImage::depth()}{depth} 1 and contains only
823 black and white pixels, the pixmap becomes monochrome.
824 \value ColorOnly The pixmap is dithered/converted to the
825 \l{QPixmap::defaultDepth()}{native display depth}.
826 \value MonoOnly The pixmap becomes monochrome. If necessary,
827 it is dithered using the chosen dithering algorithm.
829 Dithering mode preference:
831 \value DiffuseDither (default) - A high-quality dither using error diffusion.
832 \value OrderedDither A faster, ordered dither.
833 \value ThresholdDither No dithering; closest color is used.
835 Dithering mode preference for 1-bit alpha masks:
837 \value ThresholdAlphaDither (default) - No dithering.
838 \value OrderedAlphaDither A faster, ordered dither.
839 \value DiffuseAlphaDither A high-quality dither using error diffusion.
842 Color matching versus dithering preference:
844 \value PreferDither Always dither images when converting to smaller color-spaces.
845 \value AvoidDither Only dither to indexed formats if the source image uses more
846 different colors than the size of the color table of the destination format.
847 \value AutoDither (default) - Only dither when down-converting to 1 or 8-bit indexed formats.
849 \value NoOpaqueDetection Do not check whether the image contains non-opaque
850 pixels. Use this if you know that the image is semi-transparent and
851 you want to avoid the overhead of checking the pixels in the image
852 until a non-opaque pixel is found, or if you want the pixmap to
853 retain an alpha channel for some other reason. If the image has no
854 alpha channel this flag has no effect.
856 \value NoFormatConversion Don't do any format conversions on the image.
857 Can be useful when converting a QImage to a QPixmap for a one-time
858 rendering operation for example. Note that a QPixmap not in the
859 preferred format will be much slower as a paint device.
861 \omitvalue ColorMode_Mask
862 \omitvalue Dither_Mask
863 \omitvalue AlphaDither_Mask
864 \omitvalue DitherMode_Mask
870 This enum describes the available UI effects.
872 By default, Qt will try to use the platform specific desktop
873 settings for each effect. Use the
874 QApplication::setDesktopSettingsAware() function (passing \c false
875 as argument) to prevent this, and the
876 QApplication::setEffectEnabled() to enable or disable a particular
879 Note that all effects are disabled on screens running at less than
882 \omitvalue UI_General
884 \value UI_AnimateMenu Show animated menus.
885 \value UI_FadeMenu Show faded menus.
886 \value UI_AnimateCombo Show animated comboboxes.
887 \value UI_AnimateTooltip Show tooltip animations.
888 \value UI_FadeTooltip Show tooltip fading effects.
889 \value UI_AnimateToolBox Reserved
891 \sa QApplication::setEffectEnabled(), QGuiApplication::setDesktopSettingsAware()
894/*! \enum Qt::AspectRatioMode
896 This enum type defines what happens to the aspect ratio when
897 scaling an rectangle.
899 \image qimage-scaling.png
901 \value IgnoreAspectRatio The size is scaled freely. The aspect
902 ratio is not preserved.
903 \value KeepAspectRatio The size is scaled to a rectangle as
904 large as possible inside a given
905 rectangle, preserving the aspect ratio.
906 \value KeepAspectRatioByExpanding The size is scaled to a
907 rectangle as small as possible
908 outside a given rectangle,
909 preserving the aspect ratio.
911 \sa QSize::scale(), QImage::scaled()
914/*! \enum Qt::TransformationMode
916 This enum type defines whether image transformations (e.g.,
917 scaling) should be smooth or not.
919 \value FastTransformation The transformation is performed
920 quickly, with no smoothing.
921 \value SmoothTransformation The resulting image is transformed
922 using bilinear filtering.
929 This enum type defines three values to represent the three
930 axes in the cartesian coordinate system.
932 \value XAxis The X axis.
933 \value YAxis The Y axis.
934 \value ZAxis The Z axis.
936 \sa QTransform::rotate(), QTransform::rotateRadians()
940 \enum Qt::WidgetAttribute
942 \keyword widget attributes
944 This enum type is used to specify various widget attributes.
945 Attributes are set and cleared with QWidget::setAttribute(), and
946 queried with QWidget::testAttribute(), although some have special
947 convenience functions which are mentioned below.
949 \value WA_AcceptDrops Allows data from drag and drop operations
950 to be dropped onto the widget (see QWidget::setAcceptDrops()).
952 \value WA_AlwaysShowToolTips Enables tooltips for inactive windows.
954 \value WA_CustomWhatsThis Indicates that the widget wants to
955 continue operating normally in "What's This?" mode. This is set by the
958 \value WA_DeleteOnClose Makes Qt delete this widget when the
959 widget has accepted the close event (see QWidget::closeEvent()).
961 \value WA_Disabled Indicates that the widget is disabled, i.e.
962 it does not receive any mouse or keyboard events. There is also a
963 getter functions QWidget::isEnabled(). This is set/cleared by the
966 \value WA_DontShowOnScreen Indicates that the widget is hidden or is
967 not a part of the viewable Desktop.
969 \value WA_ForceDisabled Indicates that the widget is
970 explicitly disabled, i.e. it will remain disabled even when all
971 its ancestors are set to the enabled state. This implies
972 WA_Disabled. This is set/cleared by QWidget::setEnabled() and
973 QWidget::setDisabled().
975 \value WA_ForceUpdatesDisabled Indicates that updates are
976 explicitly disabled for the widget; i.e. it will remain disabled
977 even when all its ancestors are set to the updates-enabled state.
978 This implies WA_UpdatesDisabled. This is set/cleared by
979 QWidget::setUpdatesEnabled().
981 \value WA_Hover Forces Qt to generate paint events when the mouse
982 enters or leaves the widget. This feature is typically used when
983 implementing custom styles; see the \l{widgets/styles}{Styles}
986 \value WA_InputMethodEnabled Enables input methods for Asian languages.
987 Must be set when creating custom text editing widgets.
989 \value WA_KeyboardFocusChange Set on a toplevel window when
990 the users changes focus with the keyboard (tab, backtab, or shortcut).
992 \value WA_KeyCompression Enables key event compression if set,
993 and disables it if not set. By default key compression is off, so
994 widgets receive one key press event for each key press (or more,
995 since autorepeat is usually on). If you turn it on and your
996 program doesn't keep up with key input, Qt may try to compress key
997 events so that more than one character can be processed in each
999 For example, a word processor widget might receive 2, 3 or more
1000 characters in each QKeyEvent::text(), if the layout recalculation
1001 takes too long for the CPU.
1002 If a widget supports multiple character unicode input, it is
1003 always safe to turn the compression on.
1004 Qt performs key event compression only for printable characters.
1005 Qt::Modifier keys, cursor movement keys, function keys and
1006 miscellaneous action keys (e.g. Escape, Enter, Backspace,
1007 PrintScreen) will stop key event compression, even if there are
1008 more compressible key events available.
1009 Platforms other than Mac and X11 do not support this compression,
1010 in which case turning it on will have no effect.
1011 This is set/cleared by the widget's author.
1013 \value WA_LayoutOnEntireRect Indicates that the widget
1014 wants QLayout to operate on the entire QWidget::rect(), not only
1015 on QWidget::contentsRect(). This is set by the widget's author.
1017 \value WA_LayoutUsesWidgetRect Ignore the layout item rect from the style
1018 when laying out this widget with QLayout.
1020 \value WA_MacOpaqueSizeGrip Indicates that the native size grip
1021 should be opaque instead of transparent (the default). This attribute
1022 is only applicable to \macos and is set by the widget's author.
1024 \value WA_MacShowFocusRect Indicates that this widget should get a
1025 QFocusFrame around it. Some widgets draw their own focus halo
1026 regardless of this attribute. Not that the QWidget::focusPolicy
1027 also plays the main role in whether something is given focus or
1028 not, this only controls whether or not this gets the focus
1029 frame. This attribute is only applicable to \macos.
1031 \value WA_MacNormalSize Indicates the widget should have the
1032 normal size for widgets in \macos. This attribute is only
1033 applicable to \macos.
1035 \value WA_MacSmallSize Indicates the widget should have the small
1036 size for widgets in \macos. This attribute is only applicable to
1039 \value WA_MacMiniSize Indicates the widget should have the mini
1040 size for widgets in \macos. This attribute is only applicable to
1043 \value WA_Mapped Indicates that the widget is mapped on screen.
1044 This is set/cleared by the Qt kernel.
1046 \value WA_MouseNoMask Makes the widget receive mouse events for
1047 the entire widget regardless of the currently set mask,
1048 overriding QWidget::setMask(). This is not applicable for
1051 \value WA_MouseTracking Indicates that the widget has mouse
1052 tracking enabled. See QWidget::mouseTracking.
1054 \value WA_Moved Indicates that the widget has an explicit
1055 position. This is set/cleared by QWidget::move() and
1056 by QWidget::setGeometry().
1058 \value WA_NoChildEventsForParent Indicates that the widget does
1059 not want ChildAdded or ChildRemoved events sent to its
1060 parent. This is rarely necessary but can help to avoid automatic
1061 insertion widgets like splitters and layouts. This is set by a
1064 \value WA_NoChildEventsFromChildren Indicates that the widget does
1065 not want to receive ChildAdded or ChildRemoved events sent from its
1066 children. This is set by a widget's author.
1068 \value WA_NoMouseReplay Used for pop-up widgets. Indicates that the most
1069 recent mouse press event should not be replayed when the pop-up widget
1070 closes. The flag is set by the widget's author and cleared by the Qt kernel
1071 every time the widget receives a new mouse event.
1073 \value WA_NoMousePropagation Prohibits mouse events from being propagated
1074 to the widget's parent. This attribute is disabled by default.
1076 \value WA_TransparentForMouseEvents When enabled, this attribute disables
1077 the delivery of mouse events to the widget and its children. Mouse events
1078 are delivered to other widgets as if the widget and its children were not
1079 present in the widget hierarchy; mouse clicks and other events effectively
1080 "pass through" them. This attribute is disabled by default.
1082 \value WA_NoSystemBackground Indicates that the widget has no background,
1083 i.e. when the widget receives paint events, the background is not
1084 automatically repainted. \b Note: Unlike WA_OpaquePaintEvent, newly exposed
1085 areas are \b never filled with the background (e.g., after showing a
1086 window for the first time the user can see "through" it until the
1087 application processes the paint events). This flag is set or cleared by the
1090 \value WA_OpaquePaintEvent Indicates that the widget paints all its pixels
1091 when it receives a paint event. Thus, it is not required for operations
1092 like updating, resizing, scrolling and focus changes to erase the widget
1093 before generating paint events. The use of WA_OpaquePaintEvent provides a
1094 small optimization by helping to reduce flicker on systems that do not
1095 support double buffering and avoiding computational cycles necessary to
1096 erase the background prior to painting. \b Note: Unlike
1097 WA_NoSystemBackground, WA_OpaquePaintEvent makes an effort to avoid
1098 transparent window backgrounds. This flag is set or cleared by the widget's
1101 \value WA_OutsideWSRange Indicates that the widget is outside
1102 the valid range of the window system's coordinate system. A widget
1103 outside the valid range cannot be mapped on screen. This is
1104 set/cleared by the Qt kernel.
1106 \value WA_PaintOnScreen Indicates that the widget wants to draw directly
1107 onto the screen. Widgets with this attribute set do not participate in
1108 composition management, i.e. they cannot be semi-transparent or shine
1109 through semi-transparent overlapping widgets. \b Note: This flag is only
1110 supported on X11 and it disables double buffering. On Qt for Embedded
1111 Linux, the flag only works when set on a top-level widget and it relies on
1112 support from the active screen driver. This flag is set or cleared by the
1113 widget's author. To render outside of Qt's paint system, e.g., if you
1114 require native painting primitives, you need to reimplement
1115 QWidget::paintEngine() to return 0 and set this flag.
1117 \value WA_PaintUnclipped Makes all painters operating on this widget
1118 unclipped. Children of this widget or other widgets in front of it do not
1119 clip the area the painter can paint on. This flag is only supported for
1120 widgets with the WA_PaintOnScreen flag set. The preferred way to do this in
1121 a cross platform way is to create a transparent widget that lies in front
1122 of the other widgets.
1124 \value WA_PendingMoveEvent Indicates that a move event is pending, e.g.,
1125 when a hidden widget was moved. This flag is set or cleared by the Qt
1128 \value WA_PendingResizeEvent Indicates that a resize event is pending,
1129 e.g., when a hidden widget was resized. This flag is set or cleared by the
1132 \value WA_QuitOnClose Indicates that the widget should be taken into account
1133 when deciding whether to quit the application when the last window is closed.
1134 This behavior can be modified with the QGuiApplication::quitOnLastWindowClosed
1135 property. By default this attribute is set for all widgets of type Qt::Window.
1137 \value WA_Resized Indicates that the widget has an explicit size. This flag
1138 is set or cleared by QWidget::resize() and QWidget::setGeometry().
1140 \value WA_RightToLeft Indicates that the layout direction for the widget
1143 \value WA_SetCursor Indicates that the widget has a cursor of its own. This
1144 flag is set or cleared by QWidget::setCursor() and QWidget::unsetCursor().
1146 \value WA_SetFont Indicates that the widget has a font of its own. This
1147 flag is set or cleared by QWidget::setFont().
1149 \value WA_SetPalette Indicates that the widget has a palette of its own.
1150 This flag is set or cleared by QWidget::setPalette().
1152 \value WA_SetStyle Indicates that the widget has a style of its own. This
1153 flag is set or cleared by QWidget::setStyle().
1155 \value WA_ShowModal \e{This attribute has been deprecated.} Use
1156 QWidget::windowModality instead.
1158 \value WA_StaticContents Indicates that the widget contents are north-west
1159 aligned and static. On resize, such a widget will receive paint events only
1160 for parts of itself that are newly visible. This flag is set or cleared by
1161 the widget's author.
1163 \value WA_StyleSheet Indicates that the widget is styled using a
1164 \l{Qt Style Sheets}{style sheet}. WA_StyleSheet is set whenever a widget
1165 is subject to a style sheet, even if the style sheet did not affect the
1168 \value WA_StyleSheetTarget Indicates that the widget appearance was modified
1169 by a \l{Qt Style Sheets}{style sheet}. WA_StyleSheet will also be set.
1170 This value was introduced in Qt 5.12.
1172 \value WA_TabletTracking Indicates that the widget has tablet
1173 tracking enabled. See QWidget::tabletTracking.
1175 \value WA_TranslucentBackground Indicates that the widget should have a
1176 translucent background, i.e., any non-opaque regions of the widgets will be
1177 translucent because the widget will have an alpha channel. Setting this
1178 flag causes WA_NoSystemBackground to be set. On Windows the widget also
1179 needs the Qt::FramelessWindowHint window flag to be set. This flag is set
1180 or cleared by the widget's author. As of Qt 5.0, toggling this attribute
1181 after the widget has been shown is not uniformly supported across
1182 platforms. When translucent background is desired, set the attribute early
1183 when creating the widget, and avoid altering it afterwards.
1185 \value WA_UnderMouse Indicates that the widget is under the mouse cursor.
1186 The value is not updated correctly during drag and drop operations. There
1187 is also a getter function, QWidget::underMouse(). This flag is set or
1188 cleared by the Qt kernel.
1190 \value WA_UpdatesDisabled Indicates that updates are blocked (including the
1191 system background). This flag is set or cleared by the Qt kernel.
1192 \b Warning: This flag must \e never be set or cleared by the widget's author.
1194 \value WA_WindowModified Indicates that the window is marked as modified.
1195 On some platforms this flag will do nothing, on others (including \macos
1196 and Windows) the window will take a modified appearance. This flag is set
1197 or cleared by QWidget::setWindowModified().
1199 \value WA_WindowPropagation Makes a toplevel window inherit font, palette
1200 and locale from its parent.
1202 \value WA_MacAlwaysShowToolWindow On \macos, show the tool window even
1203 when the application is not active. By default, all tool windows are
1204 hidden when the application is inactive.
1206 \value WA_SetLocale Indicates the locale should be taken into consideration
1209 \value WA_StyledBackground Indicates the widget should be drawn using a
1212 \value WA_ShowWithoutActivating Show the widget without making it active.
1214 \value WA_NativeWindow Indicates that a native window is created for the
1215 widget. Enabling this flag will also force a native window for the widget's
1216 ancestors unless Qt::WA_DontCreateNativeAncestors is set.
1218 \value WA_DontCreateNativeAncestors Indicates that the widget's ancestors
1219 are kept non-native even though the widget itself is native.
1221 \value WA_X11NetWmWindowTypeDesktop Adds _NET_WM_WINDOW_TYPE_DESKTOP to the
1222 window's _NET_WM_WINDOW_TYPE X11 window property. See
1223 http://standards.freedesktop.org/wm-spec/ for more details. This attribute
1224 has no effect on non-X11 platforms.
1226 \value WA_X11NetWmWindowTypeDock Adds _NET_WM_WINDOW_TYPE_DOCK to the
1227 window's _NET_WM_WINDOW_TYPE X11 window property. See
1228 http://standards.freedesktop.org/wm-spec/ for more details. This attribute
1229 has no effect on non-X11 platforms.
1231 \value WA_X11NetWmWindowTypeToolBar Adds _NET_WM_WINDOW_TYPE_TOOLBAR to the
1232 window's _NET_WM_WINDOW_TYPE X11 window property. See
1233 http://standards.freedesktop.org/wm-spec/ for more details. This attribute
1234 has no effect on non-X11 platforms. \b Note: Qt automatically sets this
1235 attribute for QToolBar.
1237 \value WA_X11NetWmWindowTypeMenu Adds _NET_WM_WINDOW_TYPE_MENU to the
1238 window's _NET_WM_WINDOW_TYPE X11 window property. See
1239 http://standards.freedesktop.org/wm-spec/ for more details. This attribute
1240 has no effect on non-X11 platforms. \b Note: Qt automatically sets this
1241 attribute for QMenu when torn-off.
1243 \value WA_X11NetWmWindowTypeUtility Adds _NET_WM_WINDOW_TYPE_UTILITY to the
1244 window's _NET_WM_WINDOW_TYPE X11 window property. See
1245 http://standards.freedesktop.org/wm-spec/ for more details. This attribute
1246 has no effect on non-X11 platforms. \b Note: Qt automatically sets this
1247 attribute for the Qt::Tool window type.
1249 \value WA_X11NetWmWindowTypeSplash Adds _NET_WM_WINDOW_TYPE_SPLASH to the
1250 window's _NET_WM_WINDOW_TYPE X11 window property. See
1251 http://standards.freedesktop.org/wm-spec/ for more details. This attribute
1252 has no effect on non-X11 platforms. \b Note: Qt automatically sets this
1253 attribute for the Qt::SplashScreen window type.
1255 \value WA_X11NetWmWindowTypeDialog Adds _NET_WM_WINDOW_TYPE_DIALOG
1256 to the window's _NET_WM_WINDOW_TYPE X11 window property. See
1257 http://standards.freedesktop.org/wm-spec/ for more details. This
1258 attribute has no effect on non-X11 platforms. \b Note: Qt automatically sets
1259 this attribute for the Qt::Dialog and Qt::Sheet window types.
1261 \value WA_X11NetWmWindowTypeDropDownMenu Adds
1262 _NET_WM_WINDOW_TYPE_DROPDOWN_MENU to the window's
1263 _NET_WM_WINDOW_TYPE X11 window property. See
1264 http://standards.freedesktop.org/wm-spec/ for more details. This
1265 attribute has no effect on non-X11 platforms. \b Note: Qt
1266 automatically sets this attribute for QMenu objects added to a QMenuBar.
1268 \value WA_X11NetWmWindowTypePopupMenu Adds _NET_WM_WINDOW_TYPE_POPUP_MENU
1269 to the window's _NET_WM_WINDOW_TYPE X11 window property. See
1270 http://standards.freedesktop.org/wm-spec/ for more details. This attribute
1271 has no effect on non-X11 platforms. \b Note: Qt automatically sets this
1272 attribute for QMenu.
1274 \value WA_X11NetWmWindowTypeToolTip Adds _NET_WM_WINDOW_TYPE_TOOLTIP to the
1275 window's _NET_WM_WINDOW_TYPE X11 window property. See
1276 http://standards.freedesktop.org/wm-spec/ for more details. This attribute
1277 has no effect on non-X11 platforms. \b Note: Qt automatically sets this
1278 attribute for the Qt::ToolTip window type.
1280 \value WA_X11NetWmWindowTypeNotification Adds
1281 _NET_WM_WINDOW_TYPE_NOTIFICATION to the window's _NET_WM_WINDOW_TYPE X11
1282 window property. See http://standards.freedesktop.org/wm-spec/ for more
1283 details. This attribute has no effect on non-X11 platforms.
1285 \value WA_X11NetWmWindowTypeCombo Adds _NET_WM_WINDOW_TYPE_COMBO
1286 to the window's _NET_WM_WINDOW_TYPE X11 window property. See
1287 http://standards.freedesktop.org/wm-spec/ for more details. This attribute
1288 has no effect on non-X11 platforms. \b Note: Qt automatically sets this
1289 attribute for the QComboBox pop-up.
1291 \value WA_X11NetWmWindowTypeDND Adds _NET_WM_WINDOW_TYPE_DND to
1292 the window's _NET_WM_WINDOW_TYPE X11 window property. See
1293 http://standards.freedesktop.org/wm-spec/ for more details. This attribute
1294 has no effect on non-X11 platforms. \b Note: Qt automatically sets this
1295 attribute on the feedback widget used during a drag.
1297 \value WA_AcceptTouchEvents Allows touch events (see QTouchEvent)
1298 to be sent to the widget. Must be set on all widgets that can
1299 handle touch events. Without this attribute set, events from a
1300 touch device will be sent as mouse events.
1302 \value WA_TouchPadAcceptSingleTouchEvents Allows touchpad single
1303 touch events to be sent to the widget.
1305 \value WA_X11DoNotAcceptFocus Asks the window manager to not give focus
1306 to this top level window. This attribute has no effect on non-X11
1309 \value [since 5.4] WA_AlwaysStackOnTop Forces QOpenGLWidget and
1310 QQuickWidget to be drawn last, on top of other widgets. Ignored for other
1311 type of widgets. Setting this attribute breaks the stacking order, but
1312 allows having a semi-transparent OpenGL widget with other widgets visible
1313 underneath. It is strongly recommended to call update() on the widget's
1314 top-level window after enabling or disabling this attribute.
1316 \value WA_ContentsMarginsRespectsSafeArea A QWidget respects the safe
1317 area margins of a window by incorporating the margins into its contents'
1318 margins by default. This means, that a QLayout will use the content area
1319 of a widget for its layout, unless the Qt::WA_LayoutOnEntireRect attribute
1320 is set. This along with a contents margin of 0 can be used on the actual
1321 layout, to allow for example a background image to underlay the status bar and other
1322 system areas on an iOS device, while still allowing child widgets of
1323 that background to be inset based on the safe area.
1325 \omitvalue WA_LaidOut
1326 \omitvalue WA_WState_Visible
1327 \omitvalue WA_WState_Hidden
1328 \omitvalue WA_PendingUpdate
1329 \omitvalue WA_InvalidSize
1330 \omitvalue WA_GrabbedShortcut
1331 \omitvalue WA_SetWindowIcon
1332 \omitvalue WA_SetLayoutDirection
1333 \omitvalue WA_ForceUpdatesDisabled
1334 \omitvalue WA_WState_Created
1335 \omitvalue WA_WState_CompressKeys
1336 \omitvalue WA_WState_InPaintEvent
1337 \omitvalue WA_WState_Reparented
1338 \omitvalue WA_WState_ConfigPending
1339 \omitvalue WA_WState_Polished
1340 \omitvalue WA_WState_OwnSizePolicy
1341 \omitvalue WA_WState_ExplicitShowHide
1342 \omitvalue WA_InputMethodTransparent
1343 \omitvalue WA_DropSiteRegistered
1344 \omitvalue WA_NoX11EventCompression
1345 \omitvalue WA_TintedBackground
1346 \omitvalue WA_X11OpenGLOverlay
1347 \omitvalue WA_CanHostQMdiSubWindowTitleBar
1348 \omitvalue WA_X11BypassTransientForHint
1349 \omitvalue WA_DontShowOnScreen
1350 \omitvalue WA_SetWindowModality
1351 \omitvalue WA_WState_WindowOpacitySet
1352 \omitvalue WA_WState_AcceptedTouchBeginEvent
1353 \omitvalue WA_StyleSheet
1354 \omitvalue WA_AttributeCount
1357/*! \typedef Qt::HANDLE
1359 A handle type for system objects, defined as \c{void *}
1366 The key names used by Qt.
1371 \value Key_Backspace
1373 \value Key_Enter Typically located on the keypad.
1376 \value Key_Pause The Pause/Break key (\b Note: Not related to pausing media)
1379 \value Key_Clear Corresponds to the \b Clear key on selected Apple
1380 keyboard models. On other systems it is commonly mapped
1381 to the numeric keypad key \b 5, when \b {Num Lock} is
1392 \value Key_Control On \macos, this corresponds to the Command keys.
1393 \value Key_Meta On \macos, this corresponds to the Control keys.
1394 On Windows keyboards, this key is mapped to the
1397 \value Key_AltGr On Windows, when the KeyDown event for this key is
1398 sent, the Ctrl+Alt modifiers are also set.
1401 \value Key_ScrollLock
1443 \value Key_Direction_L
1444 \value Key_Direction_R
1449 \value Key_NumberSign
1452 \value Key_Ampersand
1453 \value Key_Apostrophe
1454 \value Key_ParenLeft
1455 \value Key_ParenRight
1473 \value Key_Semicolon
1505 \value Key_BracketLeft
1506 \value Key_Backslash
1507 \value Key_BracketRight
1508 \value Key_AsciiCircum
1509 \value Key_Underscore
1510 \value Key_QuoteLeft
1511 \value Key_BraceLeft
1513 \value Key_BraceRight
1514 \value Key_AsciiTilde
1515 \value Key_nobreakspace
1516 \value Key_exclamdown
1521 \value Key_brokenbar
1523 \value Key_diaeresis
1524 \value Key_copyright
1525 \value Key_ordfeminine
1526 \value Key_guillemotleft
1529 \value Key_registered
1532 \value Key_plusminus
1533 \value Key_twosuperior
1534 \value Key_threesuperior
1537 \value Key_paragraph
1538 \value Key_periodcentered
1540 \value Key_onesuperior
1541 \value Key_masculine
1542 \value Key_guillemotright
1543 \value Key_onequarter
1545 \value Key_threequarters
1546 \value Key_questiondown
1549 \value Key_Acircumflex
1551 \value Key_Adiaeresis
1557 \value Key_Ecircumflex
1558 \value Key_Ediaeresis
1561 \value Key_Icircumflex
1562 \value Key_Idiaeresis
1567 \value Key_Ocircumflex
1569 \value Key_Odiaeresis
1574 \value Key_Ucircumflex
1575 \value Key_Udiaeresis
1580 \value Key_ydiaeresis
1581 \value Key_Multi_key
1582 \value Key_Codeinput
1583 \value Key_SingleCandidate
1584 \value Key_MultipleCandidate
1585 \value Key_PreviousCandidate
1586 \value Key_Mode_switch
1593 \value Key_Hiragana_Katakana
1596 \value Key_Zenkaku_Hankaku
1599 \value Key_Kana_Lock
1600 \value Key_Kana_Shift
1601 \value Key_Eisu_Shift
1602 \value Key_Eisu_toggle
1604 \value Key_Hangul_Start
1605 \value Key_Hangul_End
1606 \value Key_Hangul_Hanja
1607 \value Key_Hangul_Jamo
1608 \value Key_Hangul_Romaja
1609 \value Key_Hangul_Jeonja
1610 \value Key_Hangul_Banja
1611 \value Key_Hangul_PreHanja
1612 \value Key_Hangul_PostHanja
1613 \value Key_Hangul_Special
1614 \value Key_Dead_Grave
1615 \value Key_Dead_Acute
1616 \value Key_Dead_Circumflex
1617 \value Key_Dead_Tilde
1618 \value Key_Dead_Macron
1619 \value Key_Dead_Breve
1620 \value Key_Dead_Abovedot
1621 \value Key_Dead_Diaeresis
1622 \value Key_Dead_Abovering
1623 \value Key_Dead_Doubleacute
1624 \value Key_Dead_Caron
1625 \value Key_Dead_Cedilla
1626 \value Key_Dead_Ogonek
1627 \value Key_Dead_Iota
1628 \value Key_Dead_Voiced_Sound
1629 \value Key_Dead_Semivoiced_Sound
1630 \value Key_Dead_Belowdot
1631 \value Key_Dead_Hook
1632 \value Key_Dead_Horn
1633 \value Key_Dead_Stroke
1634 \value Key_Dead_Abovecomma
1635 \value Key_Dead_Abovereversedcomma
1636 \value Key_Dead_Doublegrave
1637 \value Key_Dead_Belowring
1638 \value Key_Dead_Belowmacron
1639 \value Key_Dead_Belowcircumflex
1640 \value Key_Dead_Belowtilde
1641 \value Key_Dead_Belowbreve
1642 \value Key_Dead_Belowdiaeresis
1643 \value Key_Dead_Invertedbreve
1644 \value Key_Dead_Belowcomma
1645 \value Key_Dead_Currency
1656 \value Key_Dead_Small_Schwa
1657 \value Key_Dead_Capital_Schwa
1658 \value Key_Dead_Greek
1659 \value Key_Dead_Lowline
1660 \value Key_Dead_Aboveverticalline
1661 \value Key_Dead_Belowverticalline
1662 \value Key_Dead_Longsolidusoverlay
1667 \value Key_VolumeDown
1668 \value Key_VolumeMute
1670 \value Key_BassBoost
1674 \value Key_TrebleDown
1675 \value Key_MediaPlay A key setting the state of the media player to play
1676 \value Key_MediaStop A key setting the state of the media player to stop
1677 \value Key_MediaPrevious
1678 \value Key_MediaNext
1679 \value Key_MediaRecord
1680 \value Key_MediaPause A key setting the state of the media player to pause (\b Note: not the pause/break key)
1681 \value Key_MediaTogglePlayPause A key to toggle the play/pause state in the media player (rather than setting an absolute state)
1683 \value Key_Favorites
1687 \value Key_LaunchMail
1688 \value Key_LaunchMedia
1707 \value Key_MonBrightnessUp
1708 \value Key_MonBrightnessDown
1709 \value Key_KeyboardLightOnOff
1710 \value Key_KeyboardBrightnessUp
1711 \value Key_KeyboardBrightnessDown
1715 \value Key_ScreenSaver
1718 \value Key_LightBulb
1721 \value Key_AddFavorite
1723 \value Key_BrightnessAdjust
1725 \value Key_Community
1726 \value Key_AudioRewind
1727 \value Key_BackForward
1728 \value Key_ApplicationLeft
1729 \value Key_ApplicationRight
1732 \value Key_Calculator
1734 \value Key_ClearGrab
1740 \value Key_Documents
1753 \value Key_OfficeHome
1760 \value Key_RotateWindows
1761 \value Key_RotationPB
1762 \value Key_RotationKB
1766 \value Key_SplitScreen
1778 \value Key_Messenger
1780 \value Key_MailForward
1784 \value Key_Bluetooth
1787 \value Key_AudioForward
1788 \value Key_AudioRepeat
1789 \value Key_AudioRandomPlay
1791 \value Key_AudioCycleTrack
1793 \value Key_Hibernate
1796 \value Key_PowerDown
1798 \value Key_ContrastAdjust
1799 \value Key_TouchpadToggle
1800 \value Key_TouchpadOn
1801 \value Key_TouchpadOff
1807 \value Key_ChannelUp
1808 \value Key_ChannelDown
1812 \value Key_MicVolumeUp
1813 \value Key_MicVolumeDown
1819 \value Key_MediaLast
1822 \value Key_Call A key to answer or initiate a call (see Qt::Key_ToggleCallHangup for a key to toggle current call state)
1823 \value Key_Camera A key to activate the camera shutter. On Windows Runtime, the environment variable QT_QPA_ENABLE_CAMERA_KEYS must be set to receive the event.
1824 \value Key_CameraFocus A key to focus the camera. On Windows Runtime, the environment variable QT_QPA_ENABLE_CAMERA_KEYS must be set to receive the event.
1830 \value Key_Hangup A key to end an ongoing call (see Qt::Key_ToggleCallHangup for a key to toggle current call state)
1834 \value Key_ToggleCallHangup A key to toggle the current call state (ie. either answer, or hangup) depending on current call state
1835 \value Key_VoiceDial
1836 \value Key_LastNumberRedial
1846 \sa QKeyEvent::key()
1850 \enum Qt::HitTestAccuracy
1852 This enum contains the types of accuracy that can be used by the
1853 QTextDocument class when testing for mouse clicks on text documents.
1855 \value ExactHit The point at which input occurred must coincide
1856 exactly with input-sensitive parts of the document.
1857 \value FuzzyHit The point at which input occurred can lie close to
1858 input-sensitive parts of the document.
1862 \enum Qt::WhiteSpaceMode
1864 This enum describes the types of whitespace mode that are used by
1865 the QTextDocument class to meet the requirements of different kinds
1866 of textual information.
1868 \value WhiteSpaceNormal The whitespace mode used to display
1869 normal word wrapped text in paragraphs.
1870 \value WhiteSpacePre A preformatted text mode in which
1871 whitespace is reproduced exactly.
1872 \value WhiteSpaceNoWrap
1874 \omitvalue WhiteSpaceModeUndefined
1878 \enum Qt::CheckState
1880 This enum describes the state of checkable items, controls, and widgets.
1882 \value Unchecked The item is unchecked.
1883 \value PartiallyChecked The item is partially checked. Items in hierarchical models
1884 may be partially checked if some, but not all, of their
1885 children are checked.
1886 \value Checked The item is checked.
1888 \sa QCheckBox, Qt::ItemFlags, Qt::ItemDataRole
1893 \enum Qt::ToolButtonStyle
1895 The style of the tool button, describing how the button's text and
1896 icon should be displayed.
1898 \value ToolButtonIconOnly Only display the icon.
1899 \value ToolButtonTextOnly Only display the text.
1900 \value ToolButtonTextBesideIcon The text appears beside the icon.
1901 \value ToolButtonTextUnderIcon The text appears under the icon.
1902 \value ToolButtonFollowStyle Follow the \l{QStyle::SH_ToolButtonStyle}{style}.
1908 This enum type specifies a corner in a rectangle:
1910 \value TopLeftCorner The top-left corner of the rectangle.
1911 \value TopRightCorner The top-right corner of the rectangle.
1912 \value BottomLeftCorner The bottom-left corner of the rectangle.
1913 \value BottomRightCorner The bottom-right corner of the rectangle.
1919 This enum type specifies an edge in a rectangle:
1921 \value TopEdge The top edge of the rectangle.
1922 \value LeftEdge The left edge of the rectangle.
1923 \value RightEdge The right edge of the rectangle.
1924 \value BottomEdge The bottom edge of the rectangle.
1930 \enum Qt::ScrollBarPolicy
1932 This enum type describes the various modes of QAbstractScrollArea's scroll
1935 \value ScrollBarAsNeeded QAbstractScrollArea shows a scroll bar when the
1936 content is too large to fit and not otherwise. This is the
1939 \value ScrollBarAlwaysOff QAbstractScrollArea never shows a scroll bar.
1941 \value ScrollBarAlwaysOn QAbstractScrollArea always shows a scroll bar. This
1942 property is ignored on systems with transient scroll bars (e.g., on Mac from
1945 (The modes for the horizontal and vertical scroll bars are
1960 \enum Qt::FocusReason
1962 This enum specifies why the focus changed. It will be passed
1963 through QWidget::setFocus and can be retrieved in the QFocusEvent
1964 sent to the widget upon focus change.
1966 \value MouseFocusReason A mouse action occurred.
1967 \value TabFocusReason The Tab key was pressed.
1968 \value BacktabFocusReason A Backtab occurred. The input for this may
1969 include the Shift or Control keys;
1971 \value ActiveWindowFocusReason The window system made this window either
1973 \value PopupFocusReason The application opened/closed a pop-up that
1974 grabbed/released the keyboard focus.
1975 \value ShortcutFocusReason The user typed a label's buddy shortcut
1976 \value MenuBarFocusReason The menu bar took focus.
1977 \value OtherFocusReason Another reason, usually application-specific.
1979 \omitvalue NoFocusReason
1981 \sa {Keyboard Focus in Widgets}
1985 \enum Qt::WindowState
1987 \keyword window state
1989 This enum type is used to specify the current state of a top-level
1994 \value WindowNoState The window has no state set (in normal state).
1995 \value WindowMinimized The window is minimized (i.e. iconified).
1996 \value WindowMaximized The window is maximized with a frame around it.
1997 \value WindowFullScreen The window fills the entire screen without any frame around it.
1998 \value WindowActive The window is the active window, i.e. it has keyboard focus.
2003 \enum Qt::ApplicationState
2005 \keyword application state
2007 This enum type is used to specify the current state of the application.
2011 \value ApplicationSuspended The application is about to suspend. When entering this state, the
2012 application should save its state, cease all activities, and be
2013 prepared for code execution to stop. While suspended, the
2014 application can be killed at any time without further warnings
2015 (e.g. when low memory forces the OS to purge suspended applications).
2016 \value ApplicationHidden The application is hidden and runs in the background. This
2017 is the normal state for applications that need to do background
2018 processing, like playing music, while the user interacts with
2019 other applications. The application should free up all graphical
2020 resources when entering this state.
2021 \value ApplicationInactive The application is visible, but not selected to be in front.
2022 On desktop platforms, this typically means that the user
2023 activated another application. On mobile platforms, it is
2024 more common to enter this state when the OS is interrupting
2025 the user with e.g. incoming calls or SMS-messages.
2026 While in this state, consider reducing CPU-intensive tasks.
2027 \value ApplicationActive The application is visible and selected to be in front.
2033 \enum Qt::ScreenOrientation
2035 This enum type specifies the various orientations a screen might have.
2037 \value PrimaryOrientation The display's primary orientation.
2038 \value LandscapeOrientation Landscape orientation, display width is greater than display height.
2039 \value PortraitOrientation Portrait orientation, display height is greater than display width,
2040 rotated 90 degree clockwise relative to landscape.
2041 \value InvertedLandscapeOrientation Inverted landscape orientation, rotated 180 degrees relative to landscape.
2042 \value InvertedPortraitOrientation Inverted portrait orientation, rotated 180 degrees relative to portrait.
2046 \enum Qt::ContextMenuPolicy
2048 This enum type defines the various policies a widget can have with
2049 respect to showing a context menu.
2051 \value NoContextMenu the widget does not feature a context menu,
2052 context menu handling is deferred to the widget's parent.
2053 \value PreventContextMenu the widget does not feature a context
2054 menu, and in contrast to \c NoContextMenu, the handling is \e not
2055 deferred to the widget's parent. This means that all right mouse
2056 button events are guaranteed to be delivered to the widget itself
2057 through QWidget::mousePressEvent(), and QWidget::mouseReleaseEvent().
2058 \value DefaultContextMenu the widget's QWidget::contextMenuEvent() handler is called.
2059 \value ActionsContextMenu the widget displays its QWidget::actions() as context menu.
2060 \value CustomContextMenu the widget emits the QWidget::customContextMenuRequested() signal.
2064 \enum Qt::FocusPolicy
2066 This enum type defines the various policies a widget can have with
2067 respect to acquiring keyboard focus.
2069 \value TabFocus the widget accepts focus by tabbing.
2070 \value ClickFocus the widget accepts focus by clicking.
2071 \value StrongFocus the widget accepts focus by both tabbing
2072 and clicking. On \macos this will also
2073 be indicate that the widget accepts tab focus
2074 when in 'Text/List focus mode'.
2075 \value WheelFocus like Qt::StrongFocus plus the widget accepts
2076 focus by using the mouse wheel.
2077 \value NoFocus the widget does not accept focus.
2082 \enum Qt::TabFocusBehavior
2085 This enum type provides different focus behaviors for tab navigation.
2087 \value NoTabFocus iterate nothing.
2088 \value TabFocusTextControls iterate text controls and widgets.
2089 \value TabFocusListControls iterate list controls and widgets.
2090 \value TabFocusAllControls iterate all controls and widgets.
2095 \enum Qt::ShortcutContext
2097 For a QEvent::Shortcut event to occur, the shortcut's key sequence
2098 must be entered by the user in a context where the shortcut is
2099 active. The possible contexts are these:
2101 \value WidgetShortcut The shortcut is active when its
2102 parent widget has focus.
2103 \value WidgetWithChildrenShortcut The shortcut is active
2104 when its parent widget, or any of its children has focus.
2105 Children which are top-level widgets, except pop-ups, are
2106 not affected by this shortcut context.
2107 \value WindowShortcut The shortcut is active when its
2108 parent widget is a logical subwidget of the
2109 active top-level window.
2110 \value ApplicationShortcut The shortcut is active when one of
2111 the applications windows are active.
2115 \enum Qt::WindowType
2117 \keyword window flag
2119 This enum type is used to specify various window-system properties
2120 for the widget. They are fairly unusual but necessary in a few
2121 cases. Some of these flags depend on whether the underlying window
2122 manager supports them.
2126 \value Widget This is the default type for QWidget. Widgets of
2127 this type are child widgets if they have a parent,
2128 and independent windows if they have no parent.
2129 See also Qt::Window and Qt::SubWindow.
2131 \value Window Indicates that the widget is a window, usually
2132 with a window system frame and a title bar,
2133 irrespective of whether the widget has a parent or
2134 not. Note that it is not possible to unset this
2135 flag if the widget does not have a parent.
2137 \value Dialog Indicates that the widget is a window that should
2138 be decorated as a dialog (i.e., typically no
2139 maximize or minimize buttons in the title bar).
2140 This is the default type for QDialog. If you want
2141 to use it as a modal dialog, it should be launched
2142 from another window, or have a parent and used
2143 with the QWidget::windowModality property. If you make
2144 it modal, the dialog will prevent other top-level
2145 windows in the application from getting any input.
2146 We refer to a top-level window that has a parent
2147 as a \e secondary window.
2149 \value Sheet Indicates that the window is a sheet on \macos. Since
2150 using a sheet implies window modality, the recommended
2151 way is to use QWidget::setWindowModality(), or
2152 QDialog::open(), instead.
2154 \value Drawer Indicates that the widget is a drawer on \macos.
2155 This feature is obsolete. Setting the flag
2158 \value Popup Indicates that the widget is a pop-up top-level
2159 window, i.e. that it is modal, but has a window
2160 system frame appropriate for pop-up menus.
2162 \value Tool Indicates that the widget is a tool window. A tool
2163 window is often a small window with a smaller than
2164 usual title bar and decoration, typically used for
2165 collections of tool buttons. If there is a parent,
2166 the tool window will always be kept on top of it.
2167 If there isn't a parent, you may consider using
2168 Qt::WindowStaysOnTopHint as well. If the window
2169 system supports it, a tool window can be decorated
2170 with a somewhat lighter frame. It can also be
2171 combined with Qt::FramelessWindowHint.
2172 On \macos, tool windows correspond to the
2173 \l{https://developer.apple.com/documentation/appkit/nspanel}{NSPanel}
2174 class of windows. This means that the window lives on a
2175 level above normal windows making it impossible to put a normal
2176 window on top of it. By default, tool windows will disappear
2177 when the application is inactive. This can be controlled by
2178 the Qt::WA_MacAlwaysShowToolWindow attribute.
2180 \value ToolTip Indicates that the widget is a tooltip. This is
2181 used internally to implement
2182 \l{QWidget::toolTip}{tooltips}.
2184 \value SplashScreen Indicates that the window is a splash screen.
2185 This is the default type for QSplashScreen.
2187 \omitvalue Desktop Indicates that this widget is the desktop.
2189 \value SubWindow Indicates that this widget is a sub-window, such
2190 as a QMdiSubWindow widget.
2192 \value ForeignWindow Indicates that this window object is a handle
2193 representing a native platform window created by
2194 another process or by manually using native code.
2196 \value CoverWindow Indicates that the window represents a cover window,
2197 which is shown when the application is minimized on
2200 There are also a number of flags which you can use to customize
2201 the appearance of top-level windows. These have no effect on other
2204 \value MSWindowsFixedSizeDialogHint Gives the window a thin dialog border on Windows.
2205 This style is traditionally used for fixed-size dialogs.
2207 \note The use of this flag is not recommended in multi-monitor
2208 environments. This is because the system will enforce that the window
2209 maintains its native size when moving it across screens. This is
2210 particularly undesirable when using monitors with different
2213 \value MSWindowsOwnDC Gives the window its own display
2216 \value BypassWindowManagerHint This flag can be used to indicate to the platform plugin
2217 that "all" window manager protocols should be disabled. This flag will behave
2218 different depending on what operating system the application is running on and
2219 what window manager is running. The flag can be used to get a native window
2220 with no configuration set.
2222 \value X11BypassWindowManagerHint Bypass the window
2223 manager completely. This results in a borderless window
2224 that is not managed at all (i.e., no keyboard input unless
2225 you call QWidget::activateWindow() manually).
2227 \value FramelessWindowHint Produces a borderless window.
2229 On X11, the result of the flag is dependent on the window manager and its
2230 ability to understand Motif and/or NETWM hints. Most existing
2231 modern window managers can handle this.
2233 \note If the window manager relies on the frame to interactively manipulate
2234 the window, the user can no longer move or resize the window via the window
2235 system, but this side effect should not be relied on. To produce a fixed
2236 size window that can not be resized, please set QWindow::setMinimumSize()
2237 and QWindow::setMaximumSize() to the same size.
2239 \value NoDropShadowWindowHint Disables window drop shadow on supporting platforms.
2241 The \c CustomizeWindowHint flag is used to enable customization of
2242 the window controls. This flag must be set to allow the \c
2243 WindowTitleHint, \c WindowSystemMenuHint, \c
2244 WindowMinimizeButtonHint, \c WindowMaximizeButtonHint and \c
2245 WindowCloseButtonHint flags to be changed.
2247 \value CustomizeWindowHint Turns off the default window title hints.
2249 \value WindowTitleHint Gives the window a title bar.
2251 \value WindowSystemMenuHint Adds a window system menu, and
2252 possibly a close button (for example on Mac). If you need to hide
2253 or show a close button, it is more portable to use \c
2254 WindowCloseButtonHint.
2256 \value WindowMinimizeButtonHint Adds a minimize button. On
2257 some platforms this implies Qt::WindowSystemMenuHint for it to work.
2259 \value WindowMaximizeButtonHint Adds a maximize button. On
2260 some platforms this implies Qt::WindowSystemMenuHint for it to work.
2262 \value WindowMinMaxButtonsHint Adds a minimize and a maximize
2263 button. On some platforms this implies Qt::WindowSystemMenuHint for it to work.
2265 \value WindowCloseButtonHint Adds a close button. On
2266 some platforms this implies Qt::WindowSystemMenuHint for it
2269 \value WindowContextHelpButtonHint Adds a context help button to dialogs.
2270 On some platforms this implies Qt::WindowSystemMenuHint for it to work.
2272 \value MacWindowToolBarButtonHint On \macos adds a tool bar button (i.e.,
2273 the oblong button that is on the top right of windows that have toolbars).
2275 \value WindowFullscreenButtonHint On \macos adds a fullscreen button.
2277 \value BypassGraphicsProxyWidget Prevents the window and its children from
2278 automatically embedding themselves into a QGraphicsProxyWidget if the
2279 parent widget is already embedded. You can set this flag if you
2280 want your widget to always be a toplevel widget on the desktop,
2281 regardless of whether the parent widget is embedded in a scene or
2284 \value WindowShadeButtonHint Adds a shade button in place of the minimize
2285 button if the underlying window manager supports it.
2287 \value WindowStaysOnTopHint Informs the window system that the
2288 window should stay on top of all other windows. Note that
2289 on some window managers on X11 you also have to pass
2290 Qt::X11BypassWindowManagerHint for this flag to work
2293 \value WindowStaysOnBottomHint Informs the window system that the
2294 window should stay on bottom of all other windows.
2296 \note On X11, this hint will work only in window managers
2297 that support _NET_WM_STATE_BELOW atom. If a window always
2298 on the bottom has a parent, the parent will also be left on
2299 the bottom. This window hint is currently not implemented
2302 \note On Windows, this will work only for frameless or
2303 full-screen windows.
2305 \value WindowTransparentForInput Informs the window system that this window
2306 is used only for output (displaying something) and does not take input.
2307 Therefore input events should pass through as if it wasn't there.
2309 \value WindowOverridesSystemGestures Informs the window system that this window
2310 implements its own set of gestures and that system level gestures, like for
2311 instance three-finger desktop switching, should be disabled.
2313 \value WindowDoesNotAcceptFocus Informs the window system that this window should
2314 not receive the input focus.
2316 \value MaximizeUsingFullscreenGeometryHint Informs the window system that when
2317 maximizing the window it should use as much of the available screen geometry
2318 as possible, including areas that may be covered by system UI such as status
2319 bars or application launchers. This may result in the window being placed
2320 under these system UIs, but does not guarantee it, depending on whether or
2321 not the platform supports it. When the flag is enabled the user is responsible
2322 for taking QScreen::availableGeometry() into account, so that any UI elements
2323 in the application that require user interaction are not covered by system UI.
2325 \value WindowType_Mask A mask for extracting the window type
2326 part of the window flags.
2328 \sa QWidget::windowFlags, {Window Flags Example}
2332 \enum Qt::FindChildOption
2334 \value FindDirectChildrenOnly Looks only at the direct children of the object.
2335 \value FindChildrenRecursively Looks at all children of the object (recursive search).
2339 \enum Qt::DropAction
2341 \value CopyAction Copy the data to the target.
2342 \value MoveAction Move the data from the source to the target.
2343 \value LinkAction Create a link from the source to the target.
2345 \value IgnoreAction Ignore the action (do nothing with the data).
2346 \value TargetMoveAction On Windows, this value is used when the ownership of the D&D data
2347 should be taken over by the target application,
2348 i.e., the source application should not delete
2350 On X11 this value is used to do a move.
2351 TargetMoveAction is not used on the Mac.
2357 This enum describes how the items in a widget are sorted.
2359 \value AscendingOrder The items are sorted ascending e.g. starts with
2360 'AAA' ends with 'ZZZ' in Latin-1 locales
2362 \value DescendingOrder The items are sorted descending e.g. starts with
2363 'ZZZ' ends with 'AAA' in Latin-1 locales
2367 \enum Qt::SplitBehaviorFlags
2370 This enum specifies how the split() functions should behave with
2371 respect to empty strings.
2373 \value KeepEmptyParts If a field is empty, keep it in the result.
2374 \value SkipEmptyParts If a field is empty, don't include it in the result.
2376 \sa QString::split()
2380 \enum Qt::ClipOperation
2382 \value NoClip This operation turns clipping off.
2384 \value ReplaceClip Replaces the current clip path/rect/region with
2385 the one supplied in the function call.
2387 \value IntersectClip Intersects the current clip path/rect/region
2388 with the one supplied in the function call.
2392 \enum Qt::ItemSelectionMode
2394 This enum is used in QGraphicsItem, QGraphicsScene and QGraphicsView to
2395 specify how items are selected, or how to determine if shapes and items
2398 \value ContainsItemShape The output list contains only items whose
2399 \l{QGraphicsItem::shape()}{shape} is fully contained inside the
2400 selection area. Items that intersect with the area's outline are
2403 \value IntersectsItemShape The output list contains both items whose
2404 \l{QGraphicsItem::shape()}{shape} is fully contained inside the
2405 selection area, and items that intersect with the area's
2406 outline. This is a common mode for rubber band selection.
2408 \value ContainsItemBoundingRect The output list contains only items whose
2409 \l{QGraphicsItem::boundingRect()}{bounding rectangle} is fully
2410 contained inside the selection area. Items that intersect with the
2411 area's outline are not included.
2413 \value IntersectsItemBoundingRect The output list contains both items
2414 whose \l{QGraphicsItem::boundingRect()}{bounding rectangle} is
2415 fully contained inside the selection area, and items that intersect
2416 with the area's outline. This method is commonly used for
2417 determining areas that need redrawing.
2419 \sa QGraphicsScene::items(), QGraphicsScene::collidingItems(),
2420 QGraphicsView::items(), QGraphicsItem::collidesWithItem(),
2421 QGraphicsItem::collidesWithPath()
2425 \enum Qt::ItemSelectionOperation
2427 This enum is used in QGraphicsScene to specify what to do with currently selected
2428 items when setting a selection area.
2430 \value ReplaceSelection The currently selected items are replaced by items
2431 in the selection area.
2433 \value AddToSelection The items in the selection area are added to the currently
2436 \sa QGraphicsScene::setSelectionArea()
2442 Specifies which method should be used to fill the paths and polygons.
2444 \value OddEvenFill Specifies that the region is filled using the
2445 odd even fill rule. With this rule, we determine whether a point
2446 is inside the shape by using the following method.
2447 Draw a horizontal line from the point to a location outside the shape,
2448 and count the number of intersections. If the number of intersections
2449 is an odd number, the point is inside the shape. This mode is the
2452 \value WindingFill Specifies that the region is filled using the
2453 non zero winding rule. With this rule, we determine whether a
2454 point is inside the shape by using the following method.
2455 Draw a horizontal line from the point to a location outside the shape.
2456 Determine whether the direction of the line at each intersection point
2457 is up or down. The winding number is determined by summing the
2458 direction of each intersection. If the number is non zero, the point
2459 is inside the shape. This fill mode can also in most cases be considered
2460 as the intersection of closed shapes.
2464 \enum Qt::TextFormat
2466 This enum is used in widgets that can display both plain text and
2467 rich text, for example QLabel. It is used for deciding whether a text
2468 string should be interpreted as one or the other. This is normally
2469 done by passing one of the enum values to a QTextEdit::setTextFormat()
2472 \value PlainText The text string is interpreted as a plain text
2475 \value RichText The text string is interpreted as a rich text
2476 string. See \l {Supported HTML Subset} for the definition
2479 \value AutoText The text string is interpreted as for
2480 Qt::RichText if Qt::mightBeRichText() returns \c true, otherwise
2483 \value MarkdownText The text string is interpreted as Markdown-formatted text.
2484 This enum value was added in Qt 5.14.
2488 \enum Qt::CursorShape
2490 This enum type defines the various cursors that can be used.
2492 The standard arrow cursor is the default for widgets in a normal state.
2494 \value ArrowCursor \inlineimage cursor-arrow.png
2495 The standard arrow cursor.
2496 \value UpArrowCursor \inlineimage cursor-uparrow.png
2497 An arrow pointing upwards toward the top of the screen.
2498 \value CrossCursor \inlineimage cursor-cross.png
2499 A crosshair cursor, typically used to help the
2500 user accurately select a point on the screen.
2501 \value WaitCursor \inlineimage cursor-wait.png
2502 An hourglass or watch cursor, usually shown during
2503 operations that prevent the user from interacting with
2505 \value IBeamCursor \inlineimage cursor-ibeam.png
2506 A caret or ibeam cursor, indicating that a widget can
2507 accept and display text input.
2508 \value SizeVerCursor \inlineimage cursor-sizev.png
2509 A cursor used for elements that are used to vertically
2510 resize top-level windows.
2511 \value SizeHorCursor \inlineimage cursor-sizeh.png
2512 A cursor used for elements that are used to horizontally
2513 resize top-level windows.
2514 \value SizeBDiagCursor \inlineimage cursor-sizeb.png
2515 A cursor used for elements that are used to diagonally
2516 resize top-level windows at their top-right and
2517 bottom-left corners.
2518 \value SizeFDiagCursor \inlineimage cursor-sizef.png
2519 A cursor used for elements that are used to diagonally
2520 resize top-level windows at their top-left and
2521 bottom-right corners.
2522 \value SizeAllCursor \inlineimage cursor-sizeall.png
2523 A cursor used for elements that are used to resize
2524 top-level windows in any direction.
2525 \value BlankCursor A blank/invisible cursor, typically used when the cursor
2526 shape needs to be hidden.
2527 \value SplitVCursor \inlineimage cursor-vsplit.png
2528 A cursor used for vertical splitters, indicating that
2529 a handle can be dragged horizontally to adjust the use
2531 \value SplitHCursor \inlineimage cursor-hsplit.png
2532 A cursor used for horizontal splitters, indicating that
2533 a handle can be dragged vertically to adjust the use
2535 \value PointingHandCursor \inlineimage cursor-hand.png
2536 A pointing hand cursor that is typically used for
2537 clickable elements such as hyperlinks.
2538 \value ForbiddenCursor \inlineimage cursor-forbidden.png
2539 A slashed circle cursor, typically used during drag
2540 and drop operations to indicate that dragged content
2541 cannot be dropped on particular widgets or inside
2543 \value OpenHandCursor \inlineimage cursor-openhand.png
2544 A cursor representing an open hand, typically used to
2545 indicate that the area under the cursor is the visible
2546 part of a canvas that the user can click and drag in
2547 order to scroll around.
2548 \value ClosedHandCursor \inlineimage cursor-closedhand.png
2549 A cursor representing a closed hand, typically used to
2550 indicate that a dragging operation is in progress that
2552 \value WhatsThisCursor \inlineimage cursor-whatsthis.png
2553 An arrow with a question mark, typically used to indicate
2554 the presence of What's This? help for a widget.
2555 \value BusyCursor \inlineimage cursor-busy.png
2556 An hourglass or watch cursor, usually shown during
2557 operations that allow the user to interact with
2558 the application while they are performed in the
2560 \value DragMoveCursor
2561 A cursor that is usually used when dragging an item.
2562 \value DragCopyCursor
2563 A cursor that is usually used when dragging an item
2565 \value DragLinkCursor
2566 A cursor that is usually used when dragging an item
2567 to make a link to it.
2570 \omitvalue LastCursor
2571 \omitvalue CustomCursor
2575 \enum Qt::LayoutDirection
2577 Specifies the direction of Qt's layouts and text handling.
2579 \value LeftToRight Left-to-right layout.
2580 \value RightToLeft Right-to-left layout.
2581 \value LayoutDirectionAuto Automatic layout.
2583 Right-to-left layouts are necessary for certain languages,
2584 notably Arabic and Hebrew.
2586 LayoutDirectionAuto serves two purposes. When used in conjunction with widgets and layouts, it
2587 will imply to use the layout direction set on the parent widget or QApplication. This
2588 has the same effect as QWidget::unsetLayoutDirection().
2590 When LayoutDirectionAuto is used in conjunction with text layouting, it will imply that the text
2591 directionality is determined from the content of the string to be layouted.
2593 \sa QGuiApplication::setLayoutDirection(), QWidget::setLayoutDirection(), QTextOption::setTextDirection(), QString::isRightToLeft()
2597 \enum Qt::AnchorPoint
2599 Specifies a side of a layout item that can be anchored. This is used by
2600 QGraphicsAnchorLayout.
2602 \value AnchorLeft The left side of a layout item.
2603 \value AnchorHorizontalCenter A "virtual" side that is centered between the left and the
2604 right side of a layout item.
2605 \value AnchorRight The right side of a layout item.
2606 \value AnchorTop The top side of a layout item.
2607 \value AnchorVerticalCenter A "virtual" side that is centered between the top and the
2608 bottom side of a layout item.
2609 \value AnchorBottom The bottom side of a layout item.
2611 \sa QGraphicsAnchorLayout
2615 \enum Qt::InputMethodHint
2617 \value ImhNone No hints.
2619 Flags that alter the behavior:
2621 \value ImhHiddenText The input method should not show the characters while typing.
2622 This is automatically set when setting QLineEdit::echoMode to \c Password.
2623 Note that setting \c ImhHiddenText does not change the echo mode.
2624 \value ImhSensitiveData Typed text should not be stored by the active input method
2625 in any persistent storage like predictive user dictionary.
2626 \value ImhNoAutoUppercase The input method should not try to automatically switch to upper case
2627 when a sentence ends.
2628 \value ImhPreferNumbers Numbers are preferred (but not required).
2629 \value ImhPreferUppercase Upper case letters are preferred (but not required).
2630 \value ImhPreferLowercase Lower case letters are preferred (but not required).
2631 \value ImhNoPredictiveText Do not use predictive text (i.e. dictionary lookup) while typing.
2633 \value ImhDate The text editor functions as a date field.
2634 \value ImhTime The text editor functions as a time field.
2635 \value ImhPreferLatin Latin characters are preferred (but not required).
2637 \value ImhMultiLine Multiple lines can be entered into the text field.
2639 \value ImhNoEditMenu Do not use built-in edit menu. This flag was introduced in Qt 5.11.
2640 \value ImhNoTextHandles Do not use built-in text cursor and selection handles. This flag was introduced in Qt 5.11.
2642 Flags that restrict input (exclusive flags):
2644 \value ImhDigitsOnly Only digits are allowed.
2645 \value ImhFormattedNumbersOnly Only number input is allowed. This includes decimal point and minus sign.
2646 \value ImhUppercaseOnly Only upper case letter input is allowed.
2647 \value ImhLowercaseOnly Only lower case letter input is allowed.
2648 \value ImhDialableCharactersOnly Only characters suitable for phone dialing are allowed.
2649 \value ImhEmailCharactersOnly Only characters suitable for email addresses are allowed.
2650 \value ImhUrlCharactersOnly Only characters suitable for URLs are allowed.
2651 \value ImhLatinOnly Only latin based input is allowed.
2655 \value ImhExclusiveInputMask This mask yields nonzero if any of the exclusive flags are used.
2657 \note If several exclusive flags are OR-ed together, the resulting character set will
2658 consist of the union of the specified sets. For instance specifying \c ImhNumbersOnly and
2659 \c ImhUppercaseOnly would yield a set consisting of numbers and uppercase letters.
2661 \sa QGraphicsItem::inputMethodHints()
2665 \enum Qt::InputMethodQuery
2667 \value ImEnabled The widget accepts input method input.
2668 \value ImCursorRectangle The rectangle covering the area of the input cursor in widget coordinates.
2669 \value ImFont The currently used font for text input.
2670 \value ImCursorPosition The logical position of the cursor within the text surrounding the input area
2671 (see \c ImSurroundingText). The position does not incorporate the offset of
2672 the cursor within the preedit area, as controlled by QInputMethodEvent::Cursor.
2673 \value ImSurroundingText The plain text around the input area, for example the current paragraph.
2674 \value ImCurrentSelection The currently selected text.
2675 \value ImMaximumTextLength The maximum number of characters that the widget can hold. If there is no limit,
2676 QVariant::QVariant() is returned.
2677 \value ImAnchorPosition The position of the selection anchor. This may be less or greater than
2678 \c ImCursorPosition, depending on which side of selection the cursor is.
2679 If there is no selection, it returns the same as \c ImCursorPosition.
2680 \value ImHints The hints for input method on expected input. (See Qt::InputMethodHints)
2681 \value ImPreferredLanguage The preferred input language.
2682 \value ImPlatformData Platform specific data for input method.
2683 \value ImAbsolutePosition The logical position of the cursor within the entire document. The position does
2684 not incorporate the offset of the cursor within the preedit area, as controlled
2685 by QInputMethodEvent::Cursor.
2686 \value ImTextBeforeCursor The plain text before the cursor. The widget can decide how much text to return,
2687 but \b{must} not return an empty string unless the cursor is at the start of the document.
2688 \value ImTextAfterCursor The plain text after the cursor. The widget can decide how much text to return,
2689 but \b{must} not return an empty string unless the cursor is at the end of the document.
2690 \value ImEnterKeyType The Enter key type.
2691 \value ImAnchorRectangle The bounding rectangle of the selection anchor.
2692 This value was added in Qt 5.7.
2693 \value ImInputItemClipRectangle The actual exposed input item rectangle. Parts of the input item might be
2694 clipped. This value will take clipping into consideration and return the actual painted
2695 item rectangle. The rectangle is in widget coordinates.
2696 \value ImReadOnly The widget is read only. This value was added in Qt 6.2.
2700 \value ImQueryInput Commonly changed properties on input.
2701 \value ImQueryAll Query for all input method properties.
2703 \sa QInputMethodQueryEvent
2707 \enum Qt::EnterKeyType
2709 This can be used to alter the appearance of the Return key on an on-screen keyboard.
2711 \note Not all of these values are supported on all platforms.
2712 For unsupported values the default key will be used instead.
2714 \value EnterKeyDefault The default Enter key.
2715 This can either be a button closing the keyboard, or a Return button
2716 causing a new line in case of a multi-line input field.
2717 \value EnterKeyReturn Show a Return button that inserts a new line.
2718 The keyboard will not close when this button is pressed.
2719 \value EnterKeyDone Show a "Done" button.
2720 The keyboard will close when this button is pressed.
2721 \value EnterKeyGo Show a "Go" button.
2722 Typically used in an address bar when entering a URL; the keyboard
2723 will close when this button is pressed.
2724 \value EnterKeySend Show a "Send" button.
2725 The keyboard will close when this button is pressed.
2726 \value EnterKeySearch Show a "Search" button.
2727 The keyboard will close when this button is pressed.
2728 \value EnterKeyNext Show a "Next" button.
2729 Typically used in a form to allow navigating to the next input field;
2730 the keyboard will not close when this button is pressed.
2731 \value EnterKeyPrevious Show a "Previous" button.
2732 The keyboard will not close when this button is pressed.
2738 \enum Qt::ItemDataRole
2740 Each item in the model has a set of data elements associated with
2741 it, each with its own role. The roles are used by the view to indicate
2742 to the model which type of data it needs. Custom models should return
2743 data in these types.
2745 The general purpose roles (and the associated types) are:
2747 \value DisplayRole The key data to be rendered in the form of text. (QString)
2748 \value DecorationRole The data to be rendered as a decoration in the form
2749 of an icon. (QColor, QIcon or QPixmap)
2750 \value EditRole The data in a form suitable for editing in an
2752 \value ToolTipRole The data displayed in the item's tooltip. (QString)
2753 \value StatusTipRole The data displayed in the status bar. (QString)
2754 \value WhatsThisRole The data displayed for the item in "What's This?"
2756 \value SizeHintRole The size hint for the item that will be supplied
2759 Roles describing appearance and meta data (with associated types):
2761 \value FontRole The font used for items rendered with the default
2763 \value TextAlignmentRole The alignment of the text for items rendered with the
2764 default delegate. (Qt::Alignment)
2765 \value BackgroundRole The background brush used for items rendered with
2766 the default delegate. (QBrush)
2767 \value ForegroundRole The foreground brush (text color, typically)
2768 used for items rendered with the default delegate.
2770 \value CheckStateRole This role is used to obtain the checked state of
2771 an item. (Qt::CheckState)
2772 \value InitialSortOrderRole This role is used to obtain the initial sort order
2773 of a header view section. (Qt::SortOrder). This
2774 role was introduced in Qt 4.8.
2776 Accessibility roles (with associated types):
2778 \value AccessibleTextRole The text to be used by accessibility
2779 extensions and plugins, such as screen
2781 \value AccessibleDescriptionRole A description of the item for accessibility
2786 \value UserRole The first role that can be used for application-specific purposes.
2788 \omitvalue DisplayPropertyRole
2789 \omitvalue DecorationPropertyRole
2790 \omitvalue ToolTipPropertyRole
2791 \omitvalue StatusTipPropertyRole
2792 \omitvalue WhatsThisPropertyRole
2794 For user roles, it is up to the developer to decide which types to use and ensure that
2795 components use the correct types when accessing and setting data.
2801 This enum describes the properties of an item:
2803 \value NoItemFlags It does not have any properties set.
2804 \value ItemIsSelectable It can be selected.
2805 \value ItemIsEditable It can be edited.
2806 \value ItemIsDragEnabled It can be dragged.
2807 \value ItemIsDropEnabled It can be used as a drop target.
2808 \value ItemIsUserCheckable It can be checked or unchecked by the user.
2809 \value ItemIsEnabled The user can interact with the item.
2810 \value ItemIsAutoTristate The item's state depends on the state of its children.
2811 This enables automatic management of the state of parent items in QTreeWidget
2812 (checked if all children are checked, unchecked if all children are unchecked,
2813 or partially checked if only some children are checked).
2814 \value ItemNeverHasChildren The item never has child items.
2815 This is used for optimization purposes only.
2816 \value ItemIsUserTristate The user can cycle through three separate states.
2817 This value was added in Qt 5.5.
2819 Note that checkable items need to be given both a suitable set of flags
2820 and an initial state, indicating whether the item is checked or not.
2821 This is handled automatically for model/view components, but needs
2822 to be explicitly set for instances of QListWidgetItem, QTableWidgetItem,
2823 and QTreeWidgetItem.
2825 Note that it is undefined behavior to reimplement QAbstractItemModel::hasChildren
2826 to return true for an index if that index has the Qt::ItemNeverHasChildren flag set.
2828 \sa QAbstractItemModel
2834 This enum describes the type of matches that can be used when searching
2835 for items in a model.
2837 \value MatchExactly Performs QVariant-based matching.
2838 \value MatchFixedString Performs string-based matching.
2839 String-based comparisons are case-insensitive unless the
2840 \c MatchCaseSensitive flag is also specified.
2841 \value MatchContains The search term is contained in the item.
2842 \value MatchStartsWith The search term matches the start of the item.
2843 \value MatchEndsWith The search term matches the end of the item.
2844 \value MatchCaseSensitive The search is case sensitive.
2845 \value MatchRegularExpression Performs string-based matching using a regular
2846 expression as the search term. Uses QRegularExpression.
2847 When using this flag, a QRegularExpression object can be passed as
2848 parameter and will directly be used to perform the search. The case
2849 sensitivity flag will be ignored as the QRegularExpression object is
2850 expected to be fully configured.
2851 This enum value was added in Qt 5.15.
2852 \value MatchWildcard Performs string-based matching using a string with
2853 wildcards as the search term.
2854 \value MatchWrap Perform a search that wraps around, so that when
2855 the search reaches the last item in the model, it begins again at
2856 the first item and continues until all items have been examined.
2857 \value MatchRecursive Searches the entire hierarchy.
2858 \omitvalue MatchTypeMask
2860 \note Qt::MatchExactly, Qt::MatchContains, Qt::MatchStartsWith,
2861 Qt::MatchEndsWith, Qt::MatchRegularExpression, Qt::MatchWildcard, and
2862 Qt::MatchFixedString are mutually exclusive. The behavior achieved by
2863 setting several of them in a Qt::MatchFlags argument is undefined.
2865 \sa QString::compare(), QRegularExpression
2869 \enum Qt::TextElideMode
2871 This enum specifies where the ellipsis should appear when
2872 displaying texts that don't fit:
2874 \value ElideLeft The ellipsis should appear at the beginning of the text.
2875 \value ElideRight The ellipsis should appear at the end of the text.
2876 \value ElideMiddle The ellipsis should appear in the middle of the text.
2877 \value ElideNone Ellipsis should NOT appear in the text.
2879 Qt::ElideMiddle is normally the most appropriate choice for URLs (e.g.,
2880 "\l{http://bugreports.qt.io/browse/QTWEBSITE-13}{http://bugreports.qt.../QTWEBSITE-13/}"),
2881 whereas Qt::ElideRight is appropriate
2882 for other strings (e.g.,
2883 "\l{http://doc.qt.io/archives/qq/qq09-mac-deployment.html}{Deploying Applications on Ma...}").
2885 \sa QAbstractItemView::textElideMode, QFontMetrics::elidedText(), AlignmentFlag, QTabBar::elideMode
2889 \enum Qt::WindowModality
2893 This enum specifies the behavior of a modal window. A modal window
2894 is one that blocks input to other windows. Note that windows that
2895 are children of a modal window are not blocked.
2898 \value NonModal The window is not modal and does not block input to other windows.
2899 \value WindowModal The window is modal to a single window hierarchy and blocks input to its parent window, all grandparent windows, and all siblings of its parent and grandparent windows.
2900 \value ApplicationModal The window is modal to the application and blocks input to all windows.
2902 \sa QWidget::windowModality, QDialog
2906 \enum Qt::TextInteractionFlag
2908 This enum specifies how a text displaying widget reacts to user input.
2910 \value NoTextInteraction No interaction with the text is possible.
2911 \value TextSelectableByMouse Text can be selected with the mouse and copied to the clipboard using
2912 a context menu or standard keyboard shortcuts.
2913 \value TextSelectableByKeyboard Text can be selected with the cursor keys on the keyboard. A text cursor is shown.
2914 \value LinksAccessibleByMouse Links can be highlighted and activated with the mouse.
2915 \value LinksAccessibleByKeyboard Links can be focused using tab and activated with enter.
2916 \value TextEditable The text is fully editable.
2918 \value TextEditorInteraction The default for a text editor.
2919 \value TextBrowserInteraction The default for QTextBrowser.
2925 This enum specifies the behavior of the
2926 QPixmap::createMaskFromColor() and QImage::createMaskFromColor()
2929 \value MaskInColor Creates a mask where all pixels matching the given color are opaque.
2930 \value MaskOutColor Creates a mask where all pixels matching the given color are transparent.
2934 \enum Qt::DockWidgetAreaSizes
2939 \enum Qt::ToolBarAreaSizes
2944 \enum Qt::EventPriority
2946 This enum can be used to specify event priorities.
2948 \value HighEventPriority Events with this priority are sent before
2949 events with NormalEventPriority or LowEventPriority.
2951 \value NormalEventPriority Events with this priority are sent
2952 after events with HighEventPriority, but before events with
2955 \value LowEventPriority Events with this priority are sent after
2956 events with HighEventPriority or NormalEventPriority.
2958 Note that these values are provided purely for convenience, since
2959 event priorities can be any value between \c INT_MAX and \c
2960 INT_MIN, inclusive. For example, you can define custom priorities
2961 as being relative to each other:
2963 \snippet code/doc_src_qnamespace.cpp 1
2965 \sa QCoreApplication::postEvent()
2971 This enum is used by QGraphicsLayoutItem::sizeHint()
2973 \value MinimumSize is used to specify the minimum size of a graphics layout item.
2974 \value PreferredSize is used to specify the preferred size of a graphics layout item.
2975 \value MaximumSize is used to specify the maximum size of a graphics layout item.
2976 \value MinimumDescent is used to specify the minimum descent of a text string in a graphics layout item.
2977 \omitvalue NSizeHints
2979 \sa QGraphicsLayoutItem::sizeHint()
2986 This enum is used by QPainter::drawRoundedRect() and QPainterPath::addRoundedRect()
2987 functions to specify the radii of rectangle corners with respect to the dimensions
2988 of the bounding rectangles specified.
2990 \value AbsoluteSize Specifies the size using absolute measurements.
2991 \value RelativeSize Specifies the size relative to the bounding rectangle,
2992 typically using percentage measurements.
2996 \enum Qt::WindowFrameSection
2999 This enum is used to describe parts of a window frame. It is returned by
3000 QGraphicsWidget::windowFrameSectionAt() to describe what section of the window
3001 frame is under the mouse.
3005 \value TopLeftSection
3007 \value TopRightSection
3009 \value BottomRightSection
3010 \value BottomSection
3011 \value BottomLeftSection
3014 \sa QGraphicsWidget::windowFrameEvent()
3015 \sa QGraphicsWidget::paintWindowFrame()
3016 \sa QGraphicsWidget::windowFrameSectionAt()
3024 This enum describes how to repeat or stretch the parts of an image
3027 \value StretchTile Scale the image to fit to the available area.
3029 \value RepeatTile Repeat the image until there is no more space. May
3030 crop the last image.
3032 \value RoundTile Similar to Repeat, but scales the image down to
3033 ensure that the last tile is not cropped.
3037 \enum Qt::Initialization
3042 \enum Qt::Disambiguated_t
3047 \enum Qt::CoordinateSystem
3050 This enum specifies the coordinate system.
3052 \value DeviceCoordinates Coordinates are relative to the top-left corner
3053 of the object's paint device.
3055 \value LogicalCoordinates Coordinates are relative to the top-left corner
3059/*! \enum Qt::TouchPointState
3062 This enum represents the state of a touch point at the time a
3063 QTouchEvent occurred.
3065 \value TouchPointUnknownState The state of the touch point is not known.
3066 \value TouchPointPressed The touch point is now pressed.
3067 \value TouchPointMoved The touch point moved.
3068 \value TouchPointStationary The touch point did not move.
3069 \value TouchPointReleased The touch point was released.
3073 \enum Qt::GestureState
3076 This enum type describes the state of a gesture.
3078 \value NoGesture No gesture has been detected.
3079 \value GestureStarted A continuous gesture has started.
3080 \value GestureUpdated A gesture continues.
3081 \value GestureFinished A gesture has finished.
3082 \value GestureCanceled A gesture was canceled.
3088 \enum Qt::GestureType
3091 This enum type describes the standard gestures.
3093 \value TapGesture A Tap gesture.
3094 \value TapAndHoldGesture A Tap-And-Hold (Long-Tap) gesture.
3095 \value PanGesture A Pan gesture.
3096 \value PinchGesture A Pinch gesture.
3097 \value SwipeGesture A Swipe gesture.
3098 \value CustomGesture A flag that can be used to test if the gesture is a
3099 user-defined gesture ID.
3100 \omitvalue LastGestureType
3102 User-defined gestures are registered with the
3103 QGestureRecognizer::registerRecognizer() function which generates a custom
3104 gesture ID with the Qt::CustomGesture flag set.
3106 \sa QGesture, QWidget::grabGesture(), QGraphicsObject::grabGesture()
3110 \enum Qt::GestureFlag
3113 This enum type describes additional flags that can be used when subscribing
3116 \value DontStartGestureOnChildren By default gestures can start on the
3117 widget or over any of its children. Use this flag to disable this and allow
3118 a gesture to start on the widget only.
3120 \value ReceivePartialGestures Allows any ignored gesture events to be
3121 propagated to parent widgets which have specified this hint. By default
3122 only gestures that are in the Qt::GestureStarted state are propagated and
3123 the widget always gets the full gesture sequence starting with a gesture in
3124 the Qt::GestureStarted state and ending with a gesture in the
3125 Qt::GestureFinished or Qt::GestureCanceled states.
3127 \value [since 4.7] IgnoredGesturesPropagateToParent Allows fine-tuning of
3128 gesture event propagation. By setting the flag when
3129 \l{QGraphicsObject::grabGesture()}{grabbing} a gesture all ignored partial
3130 gestures will propagate to their parent items.
3132 \sa QWidget::grabGesture(), QGraphicsObject::grabGesture()
3136 \enum Qt::NativeGestureType
3139 This enum returns the gesture type.
3141 \value BeginNativeGesture Sent before gesture event stream.
3142 \value EndNativeGesture Sent after gesture event stream.
3143 \value PanNativeGesture Specifies the displacement delta in pixels.
3144 \value ZoomNativeGesture Specifies the magnification delta in percent.
3145 \value SmartZoomNativeGesture Boolean magnification state.
3146 \value RotateNativeGesture Specifies the rotation delta in degrees.
3147 \value SwipeNativeGesture Sent after a swipe movement.
3152 \enum Qt::NavigationMode
3155 This enum type describes the mode for moving focus.
3157 \value NavigationModeNone Only the touch screen is used.
3158 \value NavigationModeKeypadTabOrder Qt::Key_Up and Qt::Key_Down are used to change focus.
3159 \value NavigationModeKeypadDirectional Qt::Key_Up, Qt::Key_Down, Qt::Key_Left and Qt::Key_Right are used to change focus.
3160 \value NavigationModeCursorAuto The mouse cursor is used to change focus,
3161 it is displayed only on non touchscreen devices.
3162 The keypad is used to implement a virtual cursor, unless
3163 the device has an analog mouse type of input device (e.g. touchpad).
3164 This is the recommended setting for an application such as a web browser that
3165 needs pointer control on both touch and non-touch devices.
3166 \value NavigationModeCursorForceVisible The mouse cursor is used to change focus,
3167 it is displayed regardless of device type.
3168 The keypad is used to implement a virtual cursor, unless
3169 the device has an analog mouse type of input device (e.g. touchpad)
3170 \note Cursor navigation is not currently implemented on any platform
3171 and behaves as NavigationModeNone.
3172 \sa QApplication::setNavigationMode()
3173 \sa QApplication::navigationMode()
3177 \enum Qt::CursorMoveStyle
3179 This enum describes the movement style available to text cursors. The options
3182 \value LogicalMoveStyle Within a left-to-right text block, decrease cursor
3183 position when pressing left arrow key, increase cursor position when pressing
3184 the right arrow key. If the text block is right-to-left, the opposite behavior
3186 \value VisualMoveStyle Pressing the left arrow key will always cause the cursor
3187 to move left, regardless of the text's writing direction. Pressing the right
3188 arrow key will always cause the cursor to move right.
3194 The timer type indicates how accurate a timer can be.
3196 \value PreciseTimer Precise timers try to keep millisecond accuracy
3197 \value CoarseTimer Coarse timers try to keep accuracy within 5% of the desired interval
3198 \value VeryCoarseTimer Very coarse timers only keep full second accuracy
3200 On UNIX (including Linux, \macos, and iOS), Qt will keep millisecond accuracy
3201 for Qt::PreciseTimer. For Qt::CoarseTimer, the interval will be adjusted up
3202 to 5% to align the timer with other timers that are expected to fire at or
3203 around the same time. The objective is to make most timers wake up at the
3204 same time, thereby reducing CPU wakeups and power consumption.
3206 On Windows, Qt will use Windows's Multimedia timer facility (if available)
3207 for Qt::PreciseTimer and normal Windows timers for Qt::CoarseTimer and
3208 Qt::VeryCoarseTimer.
3210 On all platforms, the interval for Qt::VeryCoarseTimer is rounded to the
3211 nearest full second (e.g. an interval of 23500ms will be rounded to
3212 24000ms, and 20300ms to 20000ms).
3216 \enum Qt::ScrollPhase
3219 This enum describes the phase of scrolling.
3221 \value NoScrollPhase The input device doesn't support scroll phase.
3222 This value was introduced in Qt 5.7.
3224 \value ScrollBegin Scrolling is about to begin, but the scrolling
3225 distance did not yet change.
3227 \value ScrollUpdate The scrolling distance has changed (default).
3229 \value ScrollEnd Scrolling has ended, and the scrolling distance
3230 did not change anymore.
3232 \value ScrollMomentum The user no longer touches the input device,
3233 but scrolling continues due to scroll momentum.
3234 This value was introduced in Qt 5.12.
3238 \enum Qt::MouseEventSource
3241 This enum describes the source of a mouse event and can be useful
3242 to determine if the event is an artificial mouse event originating
3243 from another device such as a touchscreen.
3245 \value MouseEventNotSynthesized The most common value. On
3246 platforms where such information is available this value indicates
3247 that the event was generated in response to a genuine mouse event
3250 \value MouseEventSynthesizedBySystem Indicates that the mouse
3251 event was synthesized from a touch event by the platform.
3253 \value MouseEventSynthesizedByQt Indicates that the mouse event was
3254 synthesized from an unhandled touch event by Qt.
3256 \value MouseEventSynthesizedByApplication Indicates that the mouse
3257 event was synthesized by the application. This allows
3258 distinguishing application-generated mouse events from the ones
3259 that are coming from the system or are synthesized by Qt. This
3260 value was introduced in Qt 5.6
3262 \sa Qt::AA_SynthesizeMouseForUnhandledTouchEvents
3266 \enum Qt::MouseEventFlag
3269 This enum provides additional information concerning a QMouseEvent.
3271 \value MouseEventCreatedDoubleClick Indicates that Qt has created a
3272 \l {QEvent::MouseButtonDblClick}{MouseButtonDblClick} event from this event. The flag is set in the causing
3273 \l {QEvent::MouseButtonPress}{MouseButtonPress}, and not in the resulting \l {QEvent::MouseButtonDblClick}{MouseButtonDblClick}.
3275 \omitvalue NoMouseEventFlag
3276 \omitvalue MouseEventFlagMask
3280 \enum Qt::ChecksumType
3283 This enum describes the possible standards used by qChecksum().
3285 \value ChecksumIso3309 Checksum calculation based on ISO 3309.
3287 \value ChecksumItuV41 Checksum calculation based on ITU-V.41.
3291 \enum Qt::HighDpiScaleFactorRoundingPolicy
3294 This enum describes the possible High-DPI scale factor rounding policies, which
3295 decide how non-integer scale factors (such as Windows 150%) are handled.
3297 The active policy is set by calling QGuiApplication::setHighDdpiScaleFactorRoundingPolicy() before
3298 the application object is created.
3300 \sa QGuiApplication::setHighDpiScaleFactorRoundingPolicy()
3303 \value Round Round up for .5 and above.
3304 \value Ceil Always round up.
3305 \value Floor Always round down.
3306 \value RoundPreferFloor Round up for .75 and above.
3307 \value PassThrough Don't round.
3311 \enum Qt::PermissionStatus
3313 This enum describes the possible statuses of a permissions.
3316 The permission status is not yet known. Permission should be requested
3317 via QCoreApplication::requestPermission() to determine the actual status.
3318 This status will never be the result of requesting a permission.
3321 The user has explicitly granted the application the permission,
3322 or the permission is known to not require user authorization on
3326 The user has explicitly denied the application the requested permission,
3327 or the permission is known to not be accessible or applicable to applications
3328 on the given platform.
3330 \note On Android, there is no \c Undetermined status by the platform's APIs.
3331 Thus, if a permission is denied for an app,
3332 \l QCoreApplication::checkPermission() returns \c Undetermined
3333 by default until \l QCoreApplication::requestPermission() is called.
3334 After that \l QCoreApplication::checkPermission() reports a non \c Undetermined
3338 \sa QCoreApplication::requestPermission(), QCoreApplication::checkPermission(),
3339 {Application Permissions}
3343 \enum Qt::ReturnByValueConstant
3346 This is a dummy type, designed to help users transition from certain deprecated APIs to their replacement APIs.
3348 \omitvalue ReturnByValue
3350 \sa QCursor::bitmap()
3352 \sa QLabel::picture()
3353 \sa QLabel::pixmap()
3357 \class QKeyCombination
3360 \brief The QKeyCombination class stores a combination of a key with optional modifiers.
3362 The QKeyCombination class can be used to represent a combination of a key
3363 with zero or more keyboard modifiers.
3369 \fn QKeyCombination::QKeyCombination(Qt::Key key = Qt::Key_unknown) noexcept
3371 Constructs a QKeyCombination object that represents the key \a key
3378 \fn QKeyCombination::QKeyCombination(Qt::Modifiers modifiers, Qt::Key key = Qt::Key_unknown) noexcept
3380 Constructs a QKeyCombination object that represents the combination
3381 of \a key with the modifiers \a modifiers.
3383 \sa key(), keyboardModifiers()
3387 \fn QKeyCombination::QKeyCombination(Qt::KeyboardModifiers modifiers, Qt::Key key = Qt::Key_unknown) noexcept
3389 Constructs a QKeyCombination object that represents the combination
3390 of \a key with the modifiers \a modifiers.
3392 \sa key(), keyboardModifiers()
3396 \fn Qt::KeyboardModifiers QKeyCombination::keyboardModifiers() const noexcept
3398 Returns the keyboard modifiers represented by this QKeyCombination object.
3404 \fn Qt::Key QKeyCombination::key() const noexcept
3406 Returns the key represented by this QKeyCombination object.
3408 \sa keyboardModifiers()
3412 \fn QKeyCombination QKeyCombination::fromCombined(int combined)
3414 Constructs a QKeyCombination object by extracting the key and the
3415 modifiers out of \a combined, which must be the result of a bitwise
3416 OR between a value of type Qt::Key and value of type
3417 Qt::KeyboardModifiers. toCombined() can be used in order to produce
3418 valid values for \a combined.
3424 \fn int QKeyCombination::toCombined() const noexcept
3426 Returns an integer value obtained by applying a bitwise OR between
3427 the values of key() and keyboardModifiers() represented
3428 by this object. A QKeyCombination object can be created from the
3429 returned integer value by using fromCombined().
3431 \sa fromCombined(), key(), keyboardModifiers()
3434#if QT_DEPRECATED_SINCE(6, 0)
3436 \fn QKeyCombination::operator int() const noexcept
3439 Use toCombined() instead.
3444 \fn bool QKeyCombination::operator==(QKeyCombination lhs, QKeyCombination rhs) noexcept
3446 Returns \c true if \a lhs and \a rhs have the same combination
3447 of key and modifiers, and \c false otherwise.
3451 \fn bool QKeyCombination::operator!=(QKeyCombination lhs, QKeyCombination rhs) noexcept
3453 Returns \c true if \a lhs and \a rhs have different combinations
3454 of key and modifiers, otherwise \c false.
3458 \fn QKeyCombination operator|(Qt::Modifier modifier, Qt::Key key) noexcept
3459 \fn QKeyCombination operator|(Qt::KeyboardModifier modifier, Qt::Key key) noexcept
3460 \fn QKeyCombination operator|(Qt::Key key, Qt::Modifier modifier) noexcept
3461 \fn QKeyCombination operator|(Qt::Key key, Qt::KeyboardModifier modifier) noexcept
3463 \relates QKeyCombination
3465 Returns a QKeyCombination object that represents the combination
3466 of \a key with the modifier \a modifier.
3470 \fn QKeyCombination operator|(Qt::Modifiers modifiers, Qt::Key key) noexcept
3471 \fn QKeyCombination operator|(Qt::KeyboardModifiers modifiers, Qt::Key key) noexcept
3472 \fn QKeyCombination operator|(Qt::Key key, Qt::Modifiers modifiers) noexcept
3473 \fn QKeyCombination operator|(Qt::Key key, Qt::KeyboardModifiers modifiers) noexcept
3475 \relates QKeyCombination
3477 Returns a QKeyCombination object that represents the combination
3478 of \a key with the modifiers \a modifiers.
3482 \fn QKeyCombination operator+(Qt::Modifier modifier, Qt::Key key) noexcept
3483 \fn QKeyCombination operator+(Qt::KeyboardModifier modifier, Qt::Key key) noexcept
3484 \fn QKeyCombination operator+(Qt::Key key, Qt::Modifier modifier) noexcept
3485 \fn QKeyCombination operator+(Qt::Key key, Qt::KeyboardModifier modifier) noexcept
3487 \relates QKeyCombination
3490 Use operator| instead.
3492 Returns a QKeyCombination object that represents the combination
3493 of \a key with the modifier \a modifier.
3497 \fn QKeyCombination operator+(Qt::Modifiers modifiers, Qt::Key key) noexcept
3498 \fn QKeyCombination operator+(Qt::KeyboardModifiers modifiers, Qt::Key key) noexcept
3499 \fn QKeyCombination operator+(Qt::Key key, Qt::Modifiers modifiers) noexcept
3500 \fn QKeyCombination operator+(Qt::Key key, Qt::KeyboardModifiers modifiers) noexcept
3502 \relates QKeyCombination
3505 Use operator| instead.
3507 Returns a QKeyCombination object that represents the combination
3508 of \a key with the modifiers \a modifiers.
3512 \fn size_t qHash(QKeyCombination key, size_t seed = 0) noexcept
3513 \relates QKeyCombination
3515 Returns the hash value for the \a key, using \a seed to seed the calculation.
3518#ifndef QT_NO_DEBUG_STREAM
3520 \fn QDebug operator<<(QDebug debug, QKeyCombination combination)
3521 \relates QKeyCombination
3523 Writes the combination \a combination into the debug object \a debug for
3526 \sa {Debugging Techniques}
3530#ifndef QT_NO_DATASTREAM
3532 \fn QDataStream &operator<<(QDataStream &out, QKeyCombination combination)
3533 \relates QKeyCombination
3535 Writes the combination \a combination into the stream \a out.
3538 \sa {Serializing Qt Data Types}
3542 \fn QDataStream &operator>>(QDataStream &in, QKeyCombination &combination)
3543 \relates QKeyCombination
3545 Reads the combination \a combination from the stream \a in.
3548 \sa {Serializing Qt Data Types}