本页内容

QStyleHints Class

QStyleHints 类包含针对特定平台的提示和设置。更多内容...

头文件: #include <QStyleHints>
CMake: find_package(Qt6 REQUIRED COMPONENTS Gui)
target_link_libraries(mytarget PRIVATE Qt6::Gui)
qmake: QT += gui
继承自: QObject

属性

公共函数

const QAccessibilityHints *accessibility() const
Qt::ColorScheme colorScheme() const
Qt::ContextMenuTrigger contextMenuTrigger() const
int cursorFlashTime() const
qreal fontSmoothingGamma() const
qreal keyboardAutoRepeatRateF() const
int keyboardInputInterval() const
bool menuSelectionWraps() 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 setToolTipWakeUpDelay(std::chrono::milliseconds toolTipWakeUpDelay)
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
std::chrono::milliseconds toolTipWakeUpDelay() const
int toolTipWakeUpDelayAsMSec() const
int touchDoubleTapDistance() const
(since 6.8) void unsetColorScheme()
bool useHoverEffects() const
bool useRtlExtensions() const
int wheelScrollLines() const

信号

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 toolTipWakeUpDelayAsMSecChanged(int toolTipWakeUpDelay)
void toolTipWakeUpDelayChanged(std::chrono::milliseconds toolTipWakeUpDelay)
void useHoverEffectsChanged(bool useHoverEffects)
void wheelScrollLinesChanged(int scrollLines)

详细说明

通过QGuiApplication 获取的该类的对象,可访问当前平台的某些全局用户界面参数。

平台提供了其中大部分设置,这些设置通常为只读。 最终用户通常可以通过特定于平台的配置机制来调整这些设置。不过,您也可以通过专用的设置函数(例如,setColorScheme() 或setShowShortcutsInContextMenus())以编程方式调整某些设置,这对于测试或特殊应用程序行为非常有用。任何此类调整仅适用于当前应用程序。

自定义用户界面组件的开发者应读取相关设置,以确保这些组件的行为和操作体验与其他组件保持一致。

另请参阅 QGuiApplication::styleHints()。

属性文档

[read-only, since 6.10] accessibility : const QAccessibilityHints*

该属性存储了应用程序的辅助功能提示。

辅助功能提示封装了与平台相关的辅助功能设置,例如用户是否希望应用程序处于高对比度模式。

该枚举在 Qt 6.10 中引入。

访问函数:

const QAccessibilityHints *accessibility() const

另请参阅 QAccessibilityHints 。

[since 6.5] colorScheme : Qt::ColorScheme

该属性存储应用程序使用的配色方案。

默认情况下,它遵循系统的默认配色方案(也称为外观),并在系统配色方案发生变化时随之改变(例如在黄昏或黎明时分)。 将配色方案设置为显式值将覆盖系统设置,并忽略系统配色方案的任何变化。但是,此操作仅作为对系统的提示,且并非所有平台都支持覆盖配色方案。

重置此属性或将其设置为 `Qt::ColorScheme::Unknown` 将取消覆盖,使应用程序再次遵循系统默认设置。属性值将更改为系统当前的配色方案。

当此属性发生变化时,Qt 将读取系统调色板并更新默认调色板,但不会覆盖应用程序已显式设置的调色板条目。当 colorSchemeChange() 信号被触发时,旧的调色板仍然有效。

应用程序专属颜色应结合当前配色方案进行选择,以确保与有效调色板良好配合。若要在有效调色板发生变化时更新应用程序专属颜色,请处理PaletteChange 或ApplicationPaletteChange 事件。

此枚举在 Qt 6.5 中引入。

访问函数:

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

通知器信号:

void colorSchemeChanged(Qt::ColorScheme colorScheme)

另请参阅 Qt::ColorScheme 、QGuiApplication::palette() 以及QEvent::PaletteChange 。

[since 6.8] contextMenuTrigger : Qt::ContextMenuTrigger

用于触发上下文菜单事件的鼠标事件。

在 UNIX 系统上,默认是在鼠标按钮按下事件时显示上下文菜单;而在 Windows 系统上,则是鼠标按钮释放事件。此属性可用于覆盖平台的默认行为。

注意:开发者 必须非常谨慎地使用此属性,因为它会改变用户在当前运行平台上所期望的默认交互模式。

该枚举类型自 Qt 6.8 起引入。

访问函数:

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

通知器信号:

void contextMenuTriggerChanged(Qt::ContextMenuTrigger contextMenuTrigger)

另请参阅 Qt::ContextMenuTrigger 。

[read-only] cursorFlashTime : int

该属性存储文本光标的闪烁时间(以毫秒为单位)。

闪烁时间是指用于显示、反转和恢复插入点显示所需的时间。通常,文本光标显示的时间为其闪烁时间的一半,随后隐藏的时间也为其一半。

访问函数:

int cursorFlashTime() const

通知信号:

void cursorFlashTimeChanged(int cursorFlashTime)

[read-only] fontSmoothingGamma : const qreal

此属性存储字体平滑处理中使用的伽马值。

访问函数:

qreal fontSmoothingGamma() const

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

该属性指定了当按键被按住时,系统会以每秒多少次(单位:事件)的速率自动生成额外的重复按键操作。

该枚举在 Qt 6.5 中引入。

访问函数:

qreal keyboardAutoRepeatRateF() const

[read-only] keyboardInputInterval : int

该属性存储以毫秒为单位的时限,用于区分单次按键与两次连续按键。

访问函数:

int keyboardInputInterval() const

通知信号:

void keyboardInputIntervalChanged(int keyboardInputInterval)

菜单选项会循环。

如果菜单选择会循环,则返回true 。也就是说,当到达最后一个菜单项后,按键导航是否会将选择项移回第一个菜单项,反之亦然。

该枚举在 Qt 6.10 中引入。

访问函数:

bool menuSelectionWraps() const

[read-only] mouseDoubleClickDistance : const int

该属性存储了在两次连续鼠标点击之间,鼠标可以移动的最大距离(以像素为单位),在此范围内仍会被检测为双击

访问函数:

int mouseDoubleClickDistance() const

[read-only] mouseDoubleClickInterval : int

该属性存储以毫秒为单位的时限,用于区分双击与两次连续的鼠标点击。

访问函数:

int mouseDoubleClickInterval() const

通知信号:

void mouseDoubleClickIntervalChanged(int mouseDoubleClickInterval)

[read-only] mousePressAndHoldInterval : int

此属性存储触发长按操作的时间限制(单位为毫秒)。

访问函数:

int mousePressAndHoldInterval() const

通知信号:

void mousePressAndHoldIntervalChanged(int mousePressAndHoldInterval)

mouseQuickSelectionThreshold : int

QLineEdit 中的快速选择鼠标阈值。

此属性定义在QLineEdit 的常规文本选择过程中,鼠标光标沿y轴移动多少距离才能触发快速选择。

如果该属性值小于或等于 0,则快速选择功能将被禁用。

访问函数:

int mouseQuickSelectionThreshold() const

通知信号:

void mouseQuickSelectionThresholdChanged(int threshold)

[read-only] passwordMaskCharacter : const QChar

该属性存储在密码模式下用于遮盖文本输入框中输入字符的掩码字符。

访问函数:

QChar passwordMaskCharacter() const

[read-only] passwordMaskDelay : const int

该属性表示在密码模式下,文本输入框中输入的字母以未遮盖状态显示的时间(单位为毫秒)。

访问函数:

int passwordMaskDelay() const

[read-only] setFocusOnTouchRelease : const bool

该属性用于指定应在焦点对象上设置输入焦点的事件。

如果焦点对象(如行编辑框等)应在触摸/鼠标释放后获得输入焦点,则该属性值为true 。这是触摸平台上的正常行为。在桌面平台上,标准做法是在触摸/鼠标按下时就已设置焦点。

访问函数:

bool setFocusOnTouchRelease() const

[read-only] showIsFullScreen : const bool

该属性用于指定平台是否默认将窗口设置为全屏模式。

如果平台默认将窗口设置为全屏模式,则该属性值为true ;否则为false 。

注意:平台 仍可能选择以非全屏模式显示某些窗口,例如弹出窗口或对话框。该属性仅报告默认行为。

访问函数:

bool showIsFullScreen() const

另请参阅 QWindow::show() 和showIsMaximized()。

[read-only] showIsMaximized : const bool

该属性用于指定平台是否默认将窗口最大化。

如果平台默认将窗口最大化,则该属性值为true ;否则为false 。

注意:平台 仍可能选择将某些窗口(如弹出窗口或对话框)以非最大化状态显示。该属性仅报告默认行为。

访问函数:

bool showIsMaximized() const

另请参阅 QWindow::show() 和showIsFullScreen()。

showShortcutsInContextMenus : bool

true 如果平台通常会在上下文菜单中显示快捷键序列,则使用此功能;否则,请使用false 。

自 Qt 5.13 起,可以使用 setShowShortcutsInContextMenus() 函数来覆盖平台的默认设置。

访问函数:

bool showShortcutsInContextMenus() const
void setShowShortcutsInContextMenus(bool showShortcutsInContextMenus)

Notifier 信号:

void showShortcutsInContextMenusChanged(bool)

另请参阅 Qt::AA_DontShowShortcutsInContextMenus 。

[read-only] singleClickActivation : const bool

该属性决定项目是通过单击还是双击来激活的。

如果项目应通过单击激活,则此属性值为true ;如果应通过双击激活,则此属性值为false 。

访问函数:

bool singleClickActivation() const

[read-only] startDragDistance : int

该属性指定在开始拖放操作之前,按住鼠标按钮并移动鼠标所需达到的距离(以像素为单位)。

如果您的应用程序支持拖放功能,并且希望在用户按住鼠标按钮并移动光标达到一定距离后才开始拖放操作,则应将此属性的值作为所需的最小距离。

例如,如果点击时的鼠标位置存储在startPos 中,而当前位置(例如在鼠标移动事件中)为currentPos ,则可通过如下代码判断是否应开始拖放操作:

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

访问函数:

int startDragDistance() const

通知器信号:

void startDragDistanceChanged(int startDragDistance)

另请参阅 startDragTime 、QPoint::manhattanLength() 以及“拖放”功能。

[read-only] startDragTime : int

该属性指定鼠标按钮必须按住多长时间(以毫秒为单位),拖放操作才会开始。

如果您的应用程序支持拖放功能,并且希望在用户按住鼠标按钮达到一定时间后才开始拖放操作,则应将此属性的值用作延迟时间。

访问函数:

int startDragTime() const

通知信号:

void startDragTimeChanged(int startDragTime)

另请参阅《 startDragDistance 》 和《拖放》。

[read-only] startDragVelocity : const int

该属性指定了在按住鼠标按钮进行拖放操作时,鼠标移动速度的上限(单位为像素/秒)。值为 0 表示没有此限制。

访问函数:

int startDragVelocity() const

另请参阅 startDragDistance 以及“拖放”。

[read-only] tabFocusBehavior : Qt::TabFocusBehavior

该属性控制按下 Tab 键时的焦点行为。

注意:请 勿在 QML 中绑定此值,因为其变化通知信号尚未实现。

访问函数:

Qt::TabFocusBehavior tabFocusBehavior() const

通知信号:

void tabFocusBehaviorChanged(Qt::TabFocusBehavior tabFocusBehavior)

[since 6.12] toolTipWakeUpDelay : std::chrono::milliseconds

该属性用于设置显示工具提示前的延迟时间。

该枚举在 Qt 6.12 中引入。

访问函数:

std::chrono::milliseconds toolTipWakeUpDelay() const
void setToolTipWakeUpDelay(std::chrono::milliseconds toolTipWakeUpDelay)

通知器信号:

void toolTipWakeUpDelayChanged(std::chrono::milliseconds toolTipWakeUpDelay)

另请参阅 QWidget::toolTip 和QtQuick.Controls::ToolTip::delay 。

[read-only, since 6.12] toolTipWakeUpDelayAsMSec : int

该属性指定在显示工具提示之前应等待的延迟时间(以毫秒为单位)。

该枚举值自 Qt 6.12 起引入。

访问函数:

int toolTipWakeUpDelayAsMSec() const

通知器信号:

void toolTipWakeUpDelayAsMSecChanged(int toolTipWakeUpDelay)

另请参阅 toolTipWakeUpDelay 和QtQuick.Controls::ToolTip::delay 。

[read-only] touchDoubleTapDistance : const int

该属性表示在两次连续点击之间,手指最多可以移动多少像素,系统仍会将其识别为双击

访问函数:

int touchDoubleTapDistance() const

useHoverEffects : bool

该属性控制 UI 元素是否使用悬停效果。

如果 UI 元素应使用悬停效果,则该属性值为true 。这是桌面平台上使用鼠标指针时的标准行为,而在触控平台上,则可避免悬停事件传递带来的开销。

访问函数:

bool useHoverEffects() const
void setUseHoverEffects(bool useHoverEffects)

通知器信号:

void useHoverEffectsChanged(bool useHoverEffects)

[read-only] useRtlExtensions : const bool

该属性存储书写方向。

如果启用了从右到左的书写方向,则该属性值为true ;否则为false 。

访问函数:

bool useRtlExtensions() const

[read-only] wheelScrollLines : int

每次滚轮点击默认滚动行数。

访问函数:

int wheelScrollLines() const

通知器信号:

void wheelScrollLinesChanged(int scrollLines)

成员函数文档

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

将应用程序使用的配色方案设置为显式的scheme ,或者如果scheme 的值为Qt::ColorScheme::Unknown ,则恢复为系统当前的配色方案。

注意: 这是属性colorScheme 的设置 函数。

该函数在 Qt 6.8 中引入。

另请参阅 colorScheme()。

[since 6.8] void QStyleHints::unsetColorScheme()

将配色方案恢复为系统的当前配色方案。

注意: colorScheme 属性的重置 函数。

该功能于 Qt 6.8 中引入。

© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.