- Qt 6.9
- Qt GUI
- C++ Classes
- QStyleHints
- Qt 6.9.3 Reference Documentation

# QStyleHints Class

The QStyleHints class contains platform specific hints and settings. More...

Header: | `#include <QStyleHints>`
CMake: | `find_package(Qt6 REQUIRED COMPONENTS Gui)` `target_link_libraries(mytarget PRIVATE Qt6::Gui)`
qmake: | `QT += gui`
Inherits: | QObject

- List of all members, including inherited members
- Deprecated members

## Properties

- `(since 6.5)` colorScheme : Qt::ColorScheme
- `(since 6.8)` contextMenuTrigger : Qt::ContextMenuTrigger
- cursorFlashTime : const int
- fontSmoothingGamma : const qreal
- `(since 6.5)` keyboardAutoRepeatRateF : const qreal
- keyboardInputInterval : const int
- mouseDoubleClickDistance : const int
- mouseDoubleClickInterval : const int
- mousePressAndHoldInterval : const int
- mouseQuickSelectionThreshold : const int
- passwordMaskCharacter : const QChar
- passwordMaskDelay : const int
- setFocusOnTouchRelease : const bool

- showIsFullScreen : const bool
- showIsMaximized : const bool
- showShortcutsInContextMenus : bool
- singleClickActivation : const bool
- startDragDistance : const int
- startDragTime : const int
- startDragVelocity : const int
- tabFocusBehavior : const Qt::TabFocusBehavior
- touchDoubleTapDistance : const int
- useHoverEffects : bool
- useRtlExtensions : const bool
- wheelScrollLines : const int

## Public Functions

Qt::ColorScheme | colorScheme() const
Qt::ContextMenuTrigger | contextMenuTrigger() const
int | cursorFlashTime() const
qreal | fontSmoothingGamma() const
qreal | keyboardAutoRepeatRateF() const
int | keyboardInputInterval() const
int | mouseDoubleClickDistance() const
int | mouseDoubleClickInterval() const
int | mousePressAndHoldInterval() const
int | mouseQuickSelectionThreshold() const
QChar | passwordMaskCharacter() const
int | passwordMaskDelay() const
`(since 6.8)` void | setColorScheme(Qt::ColorScheme scheme)
void | setContextMenuTrigger(Qt::ContextMenuTrigger contextMenuTrigger)
bool | setFocusOnTouchRelease() const
void | setShowShortcutsInContextMenus(bool showShortcutsInContextMenus)
void | setUseHoverEffects(bool useHoverEffects)
bool | showIsFullScreen() const
bool | showIsMaximized() const
bool | showShortcutsInContextMenus() const
bool | singleClickActivation() const
int | startDragDistance() const
int | startDragTime() const
int | startDragVelocity() const
Qt::TabFocusBehavior | tabFocusBehavior() const
int | touchDoubleTapDistance() const
`(since 6.8)` void | unsetColorScheme()
bool | useHoverEffects() const
bool | useRtlExtensions() const
int | wheelScrollLines() const

## Signals

void | colorSchemeChanged(Qt::ColorScheme colorScheme)
void | contextMenuTriggerChanged(Qt::ContextMenuTrigger contextMenuTrigger)
void | cursorFlashTimeChanged(int cursorFlashTime)
void | keyboardInputIntervalChanged(int keyboardInputInterval)
void | mouseDoubleClickIntervalChanged(int mouseDoubleClickInterval)
void | mousePressAndHoldIntervalChanged(int mousePressAndHoldInterval)
void | mouseQuickSelectionThresholdChanged(int threshold)
void | showShortcutsInContextMenusChanged(bool)
void | startDragDistanceChanged(int startDragDistance)
void | startDragTimeChanged(int startDragTime)
void | tabFocusBehaviorChanged(Qt::TabFocusBehavior tabFocusBehavior)
void | useHoverEffectsChanged(bool useHoverEffects)
void | wheelScrollLinesChanged(int scrollLines)

## Detailed Description

An object of this class, obtained from QGuiApplication, provides access to certain global user interface parameters of the current platform.

Access to most settings is read only. The platform itself usually provides the user with ways to tune these parameters. Authors of custom user interface components should read relevant settings to allow the components to exhibit the same behavior and feel as other components.

See also QGuiApplication::styleHints().

## Property Documentation

### `[since 6.5]` colorScheme : Qt::ColorScheme

This property holds the color scheme used by the application.

By default, this follows the system's default color scheme (also known as appearance), and changes when the system color scheme changes (e.g. during dusk or dawn). Setting the color scheme to an explicit value will override the system setting and ignore any changes to the system's color scheme. However, doing so is a hint to the system, and overriding the color scheme is not supported on all platforms.

Resetting this property, or setting it to Qt::ColorScheme::Unknown, will remove the override and make the application follow the system default again. The property value will change to the color scheme the system currently has.

When this property changes, Qt will read the system palette and update the default palette, but won't overwrite palette entries that have been explicitly set by the application. When the colorSchemeChange() signal gets emitted, the old palette is still in effect.

Application-specific colors should be selected to work well with the effective palette, taking the current color scheme into account. To update application- specific colors when the effective palette changes, handle PaletteChange or ApplicationPaletteChange events.

This property was introduced in Qt 6.5.

Access functions:

Qt::ColorScheme | colorScheme() const
void | setColorScheme(Qt::ColorScheme scheme)
void | unsetColorScheme()

Notifier signal:

void | colorSchemeChanged(Qt::ColorScheme colorScheme)

See also Qt::ColorScheme, QGuiApplication::palette(), and QEvent::PaletteChange.

### `[since 6.8]` contextMenuTrigger : Qt::ContextMenuTrigger

mouse event used to trigger a context menu event.

The default on UNIX systems is to show context menu on mouse button press event, while on Windows it is the mouse button release event. This property can be used to override the default platform behavior.

Note: Developers must use this property with great care, as it changes the default interaction mode that their users will expect on the platform that they are running on.

This property was introduced in Qt 6.8.

Access functions:

Qt::ContextMenuTrigger | contextMenuTrigger() const
void | setContextMenuTrigger(Qt::ContextMenuTrigger contextMenuTrigger)

Notifier signal:

void | contextMenuTriggerChanged(Qt::ContextMenuTrigger contextMenuTrigger)

See also Qt::ContextMenuTrigger.

### `[read-only]` cursorFlashTime : const int

This property holds the text cursor's flash (blink) time in milliseconds.

The flash time is the time used to display, invert and restore the caret display. Usually the text cursor is displayed for half the cursor flash time, then hidden for the same amount of time.

Access functions:

int | cursorFlashTime() const

Notifier signal:

void | cursorFlashTimeChanged(int cursorFlashTime)

### `[read-only]` fontSmoothingGamma : const qreal

This property holds the gamma value used in font smoothing.

Access functions:

qreal | fontSmoothingGamma() const

### `[read-only, since 6.5]` keyboardAutoRepeatRateF : const qreal

This property holds the rate, in events per second, in which additional repeated key presses will automatically be generated if a key is being held down.

This property was introduced in Qt 6.5.

Access functions:

qreal | keyboardAutoRepeatRateF() const

### `[read-only]` keyboardInputInterval : const int

This property holds the time limit, in milliseconds, that distinguishes a key press from two consecutive key presses.

Access functions:

int | keyboardInputInterval() const

Notifier signal:

void | keyboardInputIntervalChanged(int keyboardInputInterval)

### `[read-only]` mouseDoubleClickDistance : const int

This property holds the maximum distance, in pixels, that the mouse can be moved between two consecutive mouse clicks and still have it detected as a double-click

Access functions:

int | mouseDoubleClickDistance() const

### `[read-only]` mouseDoubleClickInterval : const int

This property holds the time limit in milliseconds that distinguishes a double click from two consecutive mouse clicks.

Access functions:

int | mouseDoubleClickInterval() const

Notifier signal:

void | mouseDoubleClickIntervalChanged(int mouseDoubleClickInterval)

### `[read-only]` mousePressAndHoldInterval : const int

This property holds the time limit in milliseconds that activates a press and hold.

Access functions:

int | mousePressAndHoldInterval() const

Notifier signal:

void | mousePressAndHoldIntervalChanged(int mousePressAndHoldInterval)

### mouseQuickSelectionThreshold : const int

Quick selection mouse threshold in QLineEdit.

This property defines how much the mouse cursor should be moved along the y axis to trigger a quick selection during a normal QLineEdit text selection.

If the property value is less than or equal to 0, the quick selection feature is disabled.

Access functions:

int | mouseQuickSelectionThreshold() const

Notifier signal:

void | mouseQuickSelectionThresholdChanged(int threshold)

### `[read-only]` passwordMaskCharacter : const QChar

This property holds the character used to mask the characters typed into text input fields in password mode.

Access functions:

QChar | passwordMaskCharacter() const

### `[read-only]` passwordMaskDelay : const int

This property holds the time, in milliseconds, a typed letter is displayed unshrouded in a text input field in password mode.

Access functions:

int | passwordMaskDelay() const

### `[read-only]` setFocusOnTouchRelease : const bool

This property holds the event that should set input focus on focus objects.

This property is `true` if focus objects (line edits etc) should receive input focus after a touch/mouse release. This is normal behavior on touch platforms. On desktop platforms, the standard is to set focus already on touch/mouse press.

Access functions:

bool | setFocusOnTouchRelease() const

### `[read-only]` showIsFullScreen : const bool

This property holds whether the platform defaults to fullscreen windows.

This property is `true` if the platform defaults to windows being fullscreen, otherwise `false`.

Note: The platform may still choose to show certain windows non-fullscreen, such as popups or dialogs. This property only reports the default behavior.

Access functions:

bool | showIsFullScreen() const

See also QWindow::show() and showIsMaximized().

### `[read-only]` showIsMaximized : const bool

This property holds whether the platform defaults to maximized windows.

This property is `true` if the platform defaults to windows being maximized, otherwise `false`.

Note: The platform may still choose to show certain windows non-maximized, such as popups or dialogs. This property only reports the default behavior.

Access functions:

bool | showIsMaximized() const

See also QWindow::show() and showIsFullScreen().

### showShortcutsInContextMenus : bool

`true` if the platform normally shows shortcut key sequences in context menus, otherwise `false`.

Since Qt 5.13, the setShowShortcutsInContextMenus() function can be used to override the platform default.

Access functions:

bool | showShortcutsInContextMenus() const
void | setShowShortcutsInContextMenus(bool showShortcutsInContextMenus)

Notifier signal:

void | showShortcutsInContextMenusChanged(bool)

See also Qt::AA_DontShowShortcutsInContextMenus.

### `[read-only]` singleClickActivation : const bool

This property holds whether items are activated by single or double click.

This property is `true` if items should be activated by single click, `false` if they should be activated by double click instead.

Access functions:

bool | singleClickActivation() const

### `[read-only]` startDragDistance : const int

This property holds the distance, in pixels, that the mouse must be moved with a button held down before a drag and drop operation will begin.

If you support drag and drop in your application, and want to start a drag and drop operation after the user has moved the cursor a certain distance with a button held down, you should use this property's value as the minimum distance required.

For example, if the mouse position of the click is stored in `startPos` and the current position (e.g. in the mouse move event) is `currentPos`, you can find out if a drag should be started with code like this:

     if ((startPos - currentPos).manhattanLength() >=
             QApplication::startDragDistance())
         startTheDrag();

Access functions:

int | startDragDistance() const

Notifier signal:

void | startDragDistanceChanged(int startDragDistance)

See also startDragTime, QPoint::manhattanLength(), and Drag and Drop.

### `[read-only]` startDragTime : const int

This property holds the time, in milliseconds, that a mouse button must be held down before a drag and drop operation will begin.

If you support drag and drop in your application, and want to start a drag and drop operation after the user has held down a mouse button for a certain amount of time, you should use this property's value as the delay.

Access functions:

int | startDragTime() const

Notifier signal:

void | startDragTimeChanged(int startDragTime)

See also startDragDistance and Drag and Drop.

### `[read-only]` startDragVelocity : const int

This property holds the limit for the velocity, in pixels per second, that the mouse may be moved, with a button held down, for a drag and drop operation to begin. A value of 0 means there is no such limit.

Access functions:

int | startDragVelocity() const

See also startDragDistance and Drag and Drop.

### `[read-only]` tabFocusBehavior : const Qt::TabFocusBehavior

This property holds the focus behavior on press of the tab key.

Note: Do not bind this value in QML because the change notifier signal is not implemented yet.

Access functions:

Qt::TabFocusBehavior | tabFocusBehavior() const

Notifier signal:

void | tabFocusBehaviorChanged(Qt::TabFocusBehavior tabFocusBehavior)

### `[read-only]` touchDoubleTapDistance : const int

This property holds the maximum distance, in pixels, that a finger can be moved between two consecutive taps and still have it detected as a double-tap

Access functions:

int | touchDoubleTapDistance() const

### useHoverEffects : bool

This property holds whether UI elements use hover effects.

This property is `true` if UI elements should use hover effects. This is the standard behavior on desktop platforms with a mouse pointer, whereas on touch platforms the overhead of hover event delivery can be avoided.

Access functions:

bool | useHoverEffects() const
void | setUseHoverEffects(bool useHoverEffects)

Notifier signal:

void | useHoverEffectsChanged(bool useHoverEffects)

### `[read-only]` useRtlExtensions : const bool

This property holds the writing direction.

This property is `true` if right-to-left writing direction is enabled, otherwise `false`.

Access functions:

bool | useRtlExtensions() const

### `[read-only]` wheelScrollLines : const int

Number of lines to scroll by default for each wheel click.

Access functions:

int | wheelScrollLines() const

Notifier signal:

void | wheelScrollLinesChanged(int scrollLines)

## Member Function Documentation

### `[since 6.8]` void QStyleHints::setColorScheme(Qt::ColorScheme scheme)

Sets the color scheme used by the application to an explicit scheme, or revert to the system's current color scheme if scheme is Qt::ColorScheme::Unknown.

Note: Setter function for property colorScheme.

This function was introduced in Qt 6.8.

See also colorScheme().

### `[since 6.8]` void QStyleHints::unsetColorScheme()

Restores the color scheme to the system's current color scheme.

Note: Resetter function for property colorScheme.

This function was introduced in Qt 6.8.