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) |
[read-only, since 6.10] menuSelectionWraps : const bool
菜单选项会循环。
如果菜单选择会循环,则返回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.