qapplication_zh
2022-04-07 14:39:29

Class::QApplication

暂无该属性


Detailed Description

QApplication 类管理 GUI 应用程序的控制流和主要设置。 QApplication 专门为 QGuiApplication 提供了基于应用程序所需的一些功能。它处理特定的 QWidget 初始化、最终化。

对于任何使用 Qt 的 GUI 应用程序,无论该应用程序在任何给定时间有0、1、2或更多个窗口,都只有oneQApplication 对象。 对于基于非 QtWidgets 的 Qt 应用程序,请改用 QGuiApplication ,因为它不依赖于 QtWidgets 库。

一些 GUI 应用程序提供一个特殊的批处理模式,例如:为无需人工干预即可执行任务提供命令行参数。在这种非 GUI 模式下,通常只要实例化一个普通的 QCoreApplication 就足够了,从而避免不必要的初始化图形用户界面所需的资源。以下示例显示如何动态创建适当类型的应用程序实例:

QApplication 对象可通过 instance() 函数(返回一个等同于 qApp 的全局指针)来获取。

QApplication 的主要责任范围是:

  • 它可以使用一些用户桌面设置来初始化应用程序(如 palette()font()doubleClickInterval() )。它会持续跟踪这些属性以防用户从桌面全局地修改它们,例如通过控制面板。
  • 它可以执行事件句柄,这表明它接收来自底层窗口系统的事件,然后通知相关的小部件。可以通过 sendEvent()postEvent() 发送自己的事件给小部件 。
  • 它可以解析通用命令行参数,并相应的设置其内部状态。参见下文的 QApplication::QApplication() 了解更多详情。
  • 它定义了应用程序的外观,并封装在 QStyle 对象中。 可以在运行时使用 setStyle() 进行更改。
  • 它可以通过 translate() 向用户提供可见的本地化字符串。
  • 它提供一些有趣的对象例如 desktop()clipboard()
  • 它知道应用程序的窗口。可以通过 widgetAt() 来询问哪一个 widget 在哪个位置,通过 topLevelWidgets()topLevelWidgets() 得到一个列表, 等等。
  • 它可以管理应用程序的鼠标指针句柄,详见 setOverrideCursor()

因为 QApplication 对象做了如此多的初始化工作,所以它must在任何相关的用户界面对象被创建之前创建。 QApplication 同时也可以处理通用命令行参数。因此,在应用程序自己生成argv参数before生成 application 通常是很好的办法。

函数组

系统设置

desktopSettingsAware()setDesktopSettingsAware()cursorFlashTime()setCursorFlashTime()doubleClickInterval()setDoubleClickInterval()setKeyboardInputInterval()wheelScrollLines()setWheelScrollLines()palette()setPalette()font()setFont()fontMetrics()

事件处理

exec()processEvents()exit()quit()sendEvent()postEvent()sendPostedEvents()removePostedEvents()hasPendingEvents()notify()

GUI 样式

style()setStyle()

文字处理

installTranslator()removeTranslator()translate()

小部件

allWidgets()topLevelWidgets()activePopupWidget()activeModalWidget()clipboard()focusWidget()activeWindow()widgetAt()

高级光标处理

overrideCursor()setOverrideCursor()restoreOverrideCursor()

杂项

closeAllWindows()startingUp()closingDown()

See also QCoreApplication QAbstractEventDispatcher QEventLoop QSettings

QApplication::QApplication

[public constructor  ]

QApplication(int &argc, char **argv) 用在_argv_中的_argc_命令行参数初始化窗口系统以及构建应用程序对象。

Warning:_argc_和_argv_所引用的数据必须在 QApplication 对象的整个生命周期内保持有效状态。此外,_argc_必须大于零,_argv_必须包含至少一个有效的字符字符串。

全局指针qApp是指此应用程序的对象。只能创建一个应用程序对象。

必须在所有的绘制设备 QPaintDevice (包含 widgets,pixmaps,bitmaps 等)前创建应用程序对象。

**Note:**当 Qt 删除它可以识别的命令行参数时,可能会更改_argc_和_argv_。

所有 Qt 程序自动支持以下命令行选项:

  • -style= style,设置应用 GUI 样式。可能的值取决于系统配置。如果将 Qt 编译为附加样式或作为具有附加样式插件,则这些样式将可用于-style命令行选项。还可以通过设置QT_STYLE_OVERRIDE环境变量来设置所有 Qt 应用程序的风格。
  • -style style,与上列相同。
  • -stylesheet = stylesheet,设置应用程序 styleSheet 。 该值必须是包含样式表的文件路径。

**Note:**样式表里相关的网址与样式表中的文件地址相关。

  • -stylesheet stylesheet,与上列相同。
  • -widgetcount,在结尾处打印剩余未销毁的小部件和同时存在最大数量的小部件的调试信息。
  • -reverse,将应用程序的布局方向设置为 Qt::RightToLeft
  • -qmljsdebugger=,激活带有指定端口 QML/JS 的 debugger。值必须是格式 port:1234[,block],其中 block 是可选的,它的作用是让应用程序一直等,直到一个 debugger 连接到它。

See also QCoreApplication::arguments()

QApplication::QApplication

[private constructor  ]

QApplication(const QApplication &)

QApplication::aboutQt

[public slot static ]

void aboutQt() 显示有关 Qt 的简单消息框。 该消息包括应用程序正在使用 Qt 的版本号。

这对于将应用程序的“帮助”菜单包含在一起很有用,如 mainwindows/menus 示例所示。

这个函数是一个用于 QMessageBox::aboutQt() 的便利槽函数。

QApplication::activeModalWidget

[public plain static ]

QWidget * activeModalWidget() 返回一个激活的模态 widget 。

模态窗口小部件是特殊的顶级窗口小部件,它是 QDialog 的子类,它指定构造函数的模态参数为 True 。 用户在继续执行程序的其它部分之前,必须关闭模态小部件。

模态窗口小部件以堆栈形式组织。 此函数返回堆栈顶部的活动模式窗口小部件。

See also activePopupWidget() topLevelWidgets()

QApplication::activePopupWidget

[public plain static ]

QWidget * activePopupWidget() 返回一个激活的 popup 。

一个 popup 是一个设置了Qt::WType_Popup标识的特殊置顶 widget ,例如 QMenu 。当应用程序打开一个popup widget,所有的事件都会被发送到 popup 窗口,普通的小部件和模态小部件在 popup 窗口关闭前不能被访问。

显示 popup widget 时,只能打开其它 popup widget。 popup widget 被组织在一个栈中。这个函数会返回栈顶层的一个激活 popup widget。

See also activeModalWidget() topLevelWidgets()

QApplication::activeWindow

[public plain static ]

QWidget * activeWindow() 返回一个有键盘输入焦点置顶的应用程序窗口,如果没有应用程序有焦点则返回nullptr。即使当没有 focusWidget() 存在时,也可能存在一个 focusWidget() ,例如:在窗口里没有 widget 接受键盘输入事件。

See also setActiveWindow() QWidget::setFocus() QWidget::hasFocus() focusWidget()

QApplication::alert

[public plain static ]

void alert(QWidget *widget, int msec) 如果该窗口不是激活窗口,则显示一个针对_widget_警告。这个警告显示为几_msec_。如果_msec_值为0(默认值),则该警告会不间断的显示直到该窗口被重新激活。

现在这个 Qt 函数在嵌入式 Linux 中不生效。

在 macOS 中,这个函数在应用层更有效,并且会造成应用程序图标在 dock 栏闪动。

在 windows 中,这个函数会造成任务栏入口闪动一次,如果_msec_值为0的话,这个闪动会停止并且将任务栏入口变成不同的颜色(橙色)。

在 X11 ,这个会造成窗口被标记为 "demands attention",窗口必须处于隐藏状态(例如,不能调用隐藏函数,但是在一些情况下是可见)才能正常。

QApplication::allWidgets

[public plain static ]

QWidgetList allWidgets() 返回应用程序中所有小部件的列表。

如果没有 widget 的话,这个列表为空( QList::isEmpty() )。

**Note:**某些小部件可能是隐藏的。

例子:

See also topLevelWidgets() QWidget::isVisible()

QApplication::autoSipEnabled

[public slot  ]

bool autoSipEnabled() const See also setAutoSipEnabled()

QApplication::beep

[public plain static ]

void beep() 使用默认的音量和声音响铃。在嵌入式 Linux 中这个函数not可用。

QApplication::closeAllWindows

[public slot static ]

void closeAllWindows() 关闭所有的 top-level 窗口。

这个函数对于拥有很多顶层窗口的应用程序尤其有效。例如:它可以连接在文件菜单的退出条目:

窗口按随机顺序关闭,直到一个窗口不接受关闭事件。当最后一个窗口成功关闭时,应用程序退出;这个功能可以通过设置 quitOnLastWindowClosed (最后一个窗口关闭后退出)来关闭。

See also quitOnLastWindowClosed lastWindowClosed() QWidget::close() QWidget::closeEvent() lastWindowClosed() QCoreApplication::quit() topLevelWidgets() QWidget::isWindow()

QApplication::colorSpec

[public plain static ]

int colorSpec() 返回颜色规格。

See also QApplication::setColorSpec()

QApplication::compressEvent

[private plain  virtual]

bool compressEvent(QEvent *event, QObject *receiver, QPostEventList *postedEvents) override

QApplication::cursorFlashTime

[public plain static ]

int cursorFlashTime() See also setCursorFlashTime()

QApplication::d_func

[private plain  ]

QApplicationPrivate * d_func()

QApplication::d_func

[private plain  ]

const QApplicationPrivate * d_func() const

QApplication::desktop

[public plain static ]

QDesktopWidget * desktop() 返回 desktop widget(也叫根窗口)

桌面也可能由多个屏幕组成,所以这个返回结果也可能是不正确的,例如:尝试将一些 widget 在桌面尺寸上centerQDesktopWidget 拥有多个基于桌面的函数来获取有效的几何数据(尺寸,位置),如 QDesktopWidget::screenGeometry()QDesktopWidget::availableGeometry() .

QApplication::doubleClickInterval

[public plain static ]

int doubleClickInterval() See also setDoubleClickInterval()

QApplication::event

[protected plain  virtual]

bool event(QEvent *e) override

QApplication::exec

[public plain static ]

int exec() 进入主要事件循环,一直等到直到 exit() 被调用,然后返回 exit() 设置的值(如果 exit()quit() 调用则返回0)。

在事件句柄开始之前调用这个函数是必要的。这个主要事件循环从窗口系统和派发的那些小部件应用程序接收不同的事件。

通常,在 exec() 被调用之前,无法进行任何用户交互。一个特殊的例子,像 QMessageBox 这样的模态窗口可以在调用 exec() 前使用,因为模态窗口自身调用 exec() 来开始本地事件循环。

要使应用程序执行空闲处理,比如:当没有等待事件时,执行一个特殊的函数,可以使用一个参数为0的 QTimer 来完成。也可以使用 processEvents() 来实现更高级的空闲执行方案。

我们推荐连接整洁的代码到 QCoreApplication::aboutToQuit() 信号,而不是把应用程序放在main()函数中。这是因为,在一些平台(操作系统),该调用可能不会返回值。例如:在 Windows 平台,当用户登出时,操作系统会在 Qt 关闭所有顶层窗口时终止进程。因此,在调用main()函数后,no guarantee应用程序有时间退出其事件循环,并在结束时执行代码。

See also quitOnLastWindowClosed QCoreApplication::quit() QCoreApplication::exit() QCoreApplication::processEvents() QCoreApplication::exec()

QApplication::focusChanged

[public signal  ]

void focusChanged(QWidget *old, QWidget *now) 当键盘焦点从_old_改变为_now_时,这个信号会被发送,例如:因为用户按住了 Tab 键,点击到一个 widget 或者改变当前激活窗口。_old_和_now_两个指针都可能为nullptr

通过 QFocusEvent 信号,通知两个 widget 焦点被改变。

See also QWidget::setFocus() QWidget::clearFocus() Qt::FocusReason

QApplication::focusWidget

[public plain static ]

QWidget * focusWidget() 返回一个有键盘输入焦点的应用程序 widget ,如果没有应用程序有焦点则返回nullptr

See also QWidget::setFocus() QWidget::hasFocus() activeWindow() focusChanged()

QApplication::font

[public plain static ]

QFont font() 返回应用程序默认字体。

See also setFont() fontMetrics() QWidget::font()

QApplication::font

[public plain static ]

QFont font(const QWidget *widget) 这是一个重载函数。

返回_widget_的默认字体。

See also fontMetrics() QWidget::setFont()

QApplication::font

[public plain static ]

QFont font(const char *className) 这是一个重载函数。

返回一个给定了_className_参数的 widget 字体。

See also setFont() QWidget::font()

QApplication::fontMetrics

[public plain static ]

QFontMetrics fontMetrics() 返回应用程序显示(屏幕)字体的字体量度。

See also font() setFont() QWidget::fontMetrics() QPainter::fontMetrics()

QApplication::globalStrut

[public plain static ]

QSize globalStrut() See also setGlobalStrut()

QApplication::isEffectEnabled

[public plain static ]

bool isEffectEnabled(Qt::UIEffect effect) 如果启用了_effect_,则返回True;否则,返回false

默认情况下,Qt 会尝试使用桌面设置。要防止这种情况,请调用 setDesktopSettingsAware (false)。

**Note:**在少于16位色深的屏幕上禁用所有效果。

See also setEffectEnabled() Qt::UIEffect

QApplication::keyboardInputDirection

[private plain static ]

Qt::LayoutDirection keyboardInputDirection()

QApplication::keyboardInputInterval

[public plain static ]

int keyboardInputInterval() See also setKeyboardInputInterval()

QApplication::keyboardInputLocale

[private plain static ]

QLocale keyboardInputLocale()

QApplication::keypadNavigationEnabled

[public plain static ]

bool keypadNavigationEnabled() 如果 Qt 设置为使用键盘导航,则返回True;否则返回 false 。 默认值为 false 。

此功能仅在 Qt for Embedded Linux 和 Windows CE 中可用。

**Note:**在 Windows CE 上,触摸设备 mkspecs 默认禁用此功能。 要启用键盘导航,请使用定义的 QT_KEYPAD_NAVIGATION 构建 Qt。

See also setKeypadNavigationEnabled() navigationMode()

QApplication::metaObject

[private plain  virtual]

const QMetaObject * metaObject() const override

QApplication::navigationMode

[public plain static ]

Qt::NavigationMode navigationMode() 返回 Qt 正在使用的焦点导航模式。

这个功能只作用于嵌入式 Linux 。

See also setNavigationMode()

QApplication::notify

[public plain  virtual]

bool notify(QObject *receiver, QEvent *e) override

QApplication::operator=

[private copy-assign  ]

QApplication & operator=(const QApplication &)

QApplication::palette

[public plain static ]

QPalette palette(const QWidget *widget) 如果一个_widget_已经失效,则返回一个通用于 widget 类的默认调色板。这个不一定是应用程序的调色板。在大多数情况下, widget 不会有一个特定的调色板,但是如果用户在 windows 平台下为弹出菜单定义了一个特殊的背景颜色,那这种情况就有可能发生。

See also setPalette() QWidget::palette()

QApplication::palette

[public plain static ]

QPalette palette(const char *className) 这是一个重载函数。

返回一个指定了_className_参数的 widget 的调色板。

See also setPalette() QWidget::palette()

暂无该属性

[public macrowithoutparams  ]

qApp 一个单独的应用程序对象的全局指针。等价于 QCoreApplication::instance() 的返回值,作为一个 QApplication 的指针,所以仅在这个单独的应用程序对象为 QApplication 对象时有效。

See also QCoreApplication::instance() qGuiApp

QApplication::qt_metacall

[private plain  virtual]

int qt_metacall(QMetaObject::Call , int , void **) override

QApplication::qt_metacast

[private plain  virtual]

void * qt_metacast(const char *) override

QApplication::qt_static_metacall

[private plain static ]

void qt_static_metacall(QObject *, QMetaObject::Call , int , void **)

QApplication::setActiveWindow

[public plain static ]

void setActiveWindow(QWidget *active) 设置当前窗口为给定的_active_参数 widget 来响应一个系统事件。这个函数可以被操作系统特定的事件处理函数调用。

**Warning:*这个函数not*会同时设置键盘焦点到给定的active widget。调用 QWidget::activateWindow() 来获取。

这个函数会设置 activeWindow()focusWidget() 属性然后给所有恰当的 widget 发送 QEvent::WindowActivate / QEvent::WindowDeactivate and QEvent::FocusIn / QEvent::FocusOut 事件。这个窗口将会被标记为 active 状态(例如:当光标在编辑框中将会闪烁),以及相应的注释信息会被激活。

See also activeWindow() QWidget::activateWindow()

QApplication::setAutoSipEnabled

[public slot  ]

void setAutoSipEnabled(const bool enabled) See also autoSipEnabled()

QApplication::setColorSpec

[public plain static ]

void setColorSpec(int spec) 将应用程序的颜色规格设置为_spec_。

此调用无效。

当应用程序在颜色数量有限的显示器上运行时,颜色规范控制应用程序如何分配颜色。例如:8位/ 256色显示器。

在创建 QApplication 对象之前必须设置颜色格式。

选项包括:

  • QApplication::NormalColor 是默认的颜色分配策略。 如果应用程序使用颜色很少的按钮,菜单,文本和像素图时使用此选项。 使用此选项,应用程序将使用系统全局颜色。 这对于 X11 下的大多数应用程序都可以正常工作,但是在 Windows 平台上,可能会导致非标准颜色的抖动。

  • QApplication::CustomColor 如果应用程序需要少量的自定义颜色时使用此选项。 在 X11 上,此选项与 NormalColor 相同。 在 Windows 上,Qt 创建 Windows 调色板,并根据需要为其分配颜色。

  • QApplication::ManyColor 如果应用程序非常渴望色彩,例如需要数千种颜色,请使用此选项。 在 X11 下,效果是:

  • 对于最多具有256色真彩色视觉效果的 256 色显示器,将使用默认视觉效果,并从色块中分配颜色。 彩色多维数据集是 6x6x6(216色)“ Web调色板”(红色,绿色和蓝色组件始终具有以下值之一:0x00、0x33、0x66、0x99、0xCC或0xFF),但是颜色数 可以通过*-ncols*选项更改。 用户可以通过 QApplication::QApplication() 选项强制应用程序使用真彩色视觉效果。

  • 对于具有 256 种以上真实色彩的 256 色显示器,请使用该视觉。 例如,Silicon Graphics X 服务器具有此功能。 默认情况下,它们提供8位视觉效果,但在询问时可以提供真实色彩。

在 Windows 上,Qt 创建一个 Windows 调色板,并用一个颜色立方体填充它。

请注意, CustomColorManyColor 选项可能会导致颜色图闪烁:前台应用程序获得(大部分)可用的颜色,而背景窗口看起来不那么吸引人。

例子:

See also colorSpec()

QApplication::setCursorFlashTime

[public plain static ]

void setCursorFlashTime(int ) See also cursorFlashTime()

QApplication::setDoubleClickInterval

[public plain static ]

void setDoubleClickInterval(int ) See also doubleClickInterval()

QApplication::setEffectEnabled

[public plain static ]

void setEffectEnabled(Qt::UIEffect effect, bool enable) 如果 enable 为 True 则启用 UI 效果_effect_,否则将禁用该效果。

**Note:**在少于 16 位色深的屏幕上禁用所有效果。

See also isEffectEnabled() Qt::UIEffect setDesktopSettingsAware()

QApplication::setFont

[public plain static ]

void setFont(const QFont &font, const char *className) 改变默认应用程序字体为给定的_font_参数。如果给定的_className_参数已经失效,该设置将仅作用于继承于该_className_的所有类(同见 QObject::inherits() )。

在应用程序启动时,默认的字体设置基于 windows 系统。这个设定会因 windows 系统的版本和地域而变化。这个函数可以重写默认字体;但是重写它可能也会有不好的情况,因为比如某些地域需要更大的字体来显示它们特有的文字。

**Warning:**不要在使用 Qt Style Sheets 时同时使用这个函数。这个功能可以使用 style sheet 的 font 属性来实现。如果想为所有的 QPushButton 设置加粗字体,可以设置 styleSheet() 为"QPushButton { font: bold }"

See also font() fontMetrics() QWidget::setFont()

QApplication::setGlobalStrut

[public plain static ]

void setGlobalStrut(const QSize &) See also globalStrut()

QApplication::setGraphicsSystem

[private plain static ]

void setGraphicsSystem(const QString &)

QApplication::setKeyboardInputInterval

[public plain static ]

void setKeyboardInputInterval(int ) See also keyboardInputInterval()

QApplication::setKeypadNavigationEnabled

[public plain static ]

void setKeypadNavigationEnabled(bool enable) 设置 Qt 是否应该配合小键盘使用焦点导航。

此功能仅在 Qt for Embedded Linux 和 Windows CE 中可用。

**Note:**在 Windows CE 上,触摸设备 mkspecs 默认禁用此功能。 要启用键盘导航,请使用定义的 QT_KEYPAD_NAVIGATION 构建 Qt 。

See also keypadNavigationEnabled() setNavigationMode()

QApplication::setNavigationMode

[public plain static ]

void setNavigationMode(Qt::NavigationMode mode) 设置 Qt 应该使用的焦点导航_mode_。

这个功能只作用于嵌入式 Linux 。

See also navigationMode()

QApplication::setPalette

[public plain static ]

void setPalette(const QPalette &palette, const char *className) 改变应用程序调色变为给定的_palette_参数。

如果给定的_className_参数已经失效,则该功能仅生效于继承于_className_的所有 widget。(同见 QObject::inherits() )。如果_className_已经失效且当前无任何类继承于这个类,则这个设定会作用于所有的 widget,从而会覆盖设定的所有调色板设定。

这个调色板设定可能会根据 QStyle::polish() 的当前 Gui 样式而被更改。

**Warning:**不要在使用 Qt Style Sheets 的同时使用这个函数,当使用样式表时,这个调色板设定可以通过设置 "color", "background-color", "selection-color", "selection-background-color" 和 "alternate-background-color"等来实现。

**Note:**一些使用本机主题引擎的样式不会应用所有的调色板设定,例如某些 Windows Vista 和 macOS 的样式。

See also QWidget::setPalette() palette() QStyle::polish()

QApplication::setStartDragDistance

[public plain static ]

void setStartDragDistance(int l) See also startDragDistance()

QApplication::setStartDragTime

[public plain static ]

void setStartDragTime(int ms) See also startDragTime()

QApplication::setStyle

[public plain static ]

void setStyle(QStyle *style) 将应用程序的 Gui 样式设置为给定的_style_参数样式。这个样式的对象的所有权将转交给 QApplication ,所以 QApplication 会在应用程序退出时销毁该样式对象或者当一个应用程序设定一个新的样式对象时,旧的样式对象也将会被保留于应用程序对象。

实例用法:

当切换应用程序的样式时,颜色 palette 将会被还原为操作系统默认的调色板。这样做是必要的,因为某些样式必须调整调色板才能完全符合样式规范。

在设置调色板之前即在创建 QApplication 之前设置样式,将导致应用程序对调色板使用 QStyle::standardPalette()

**Warning:**自定义 QStyle 子类当前不支持 Qt 样式表。 我们计划在将来的版本中解决此问题。

See also style() QStyle setPalette() desktopSettingsAware()

QApplication::setStyle

[public plain static ]

QStyle * setStyle(const QString &style) 这是一个重载函数。

QStyleFactory 请求 QStyle 对象以获取_style_。

该字符串必须是 QStyleFactory::keys() 之一,通常是“ windows”,“ windowsvista”,“ fusion” 或 “ macintosh” 之一。 样式名称不区分大小写。

如果传递了未知_style_,则返回nullptr,否则将返回的 QStyle 对象设置为应用程序的 GUI 样式。

**Warning:**为确保正确设置应用程序的样式,最好在 QApplication 构造函数之前调用此函数。

QApplication::setStyleSheet

[public slot  ]

void setStyleSheet(const QString &sheet) See also styleSheet()

QApplication::setWheelScrollLines

[public plain static ]

void setWheelScrollLines(int ) See also wheelScrollLines()

QApplication::setWindowIcon

[public plain static ]

void setWindowIcon(const QIcon &icon) See also windowIcon()

QApplication::startDragDistance

[public plain static ]

int startDragDistance() See also setStartDragDistance()

QApplication::startDragTime

[public plain static ]

int startDragTime() See also setStartDragTime()

QApplication::style

[public plain static ]

QStyle * style() 返回应用程序的样式对象。

See also setStyle() QStyle

QApplication::styleSheet

[public plain  ]

QString styleSheet() const See also setStyleSheet()

QApplication::syncX

[private plain static ]

void syncX()

QApplication::topLevelAt

[public plain static ]

QWidget * topLevelAt(const QPoint &point) 返回给定_point_的顶级小部件; 如果没有这样的小部件,则返回nullptr

QApplication::topLevelAt

[public plain static ]

QWidget * topLevelAt(int x, int y) 这是一个重载函数。

返回点(_x_,_y_)处的顶级窗口小部件; 如果没有这样的小部件,则返回 0。

QApplication::topLevelWidgets

[public plain static ]

QWidgetList topLevelWidgets() 返回应用程序中顶级窗口小部件(窗口)的列表。

某些顶级小部件可能是隐藏的,例如,如果当前未显示任何工具提示,则为工具提示。

例子:

See also allWidgets() QWidget::isWindow() QWidget::isHidden()

QApplication::wheelScrollLines

[public plain static ]

int wheelScrollLines() See also setWheelScrollLines()

QApplication::widgetAt

[public plain static ]

QWidget * widgetAt(const QPoint &point) 返回位于全局屏幕位置_point_的小部件;如果那里没有 Qt widget,则返回nullptr

此函数可能很慢。

See also QCursor::pos() QWidget::grabMouse() QWidget::grabKeyboard()

QApplication::widgetAt

[public plain static ]

QWidget * widgetAt(int x, int y) 这是一个重载函数。

返回位于全局屏幕位置(_x_,_y_)的小部件,如果那里没有 Qt 小部件,则返回nullptr

QApplication::windowIcon

[public plain static ]

QIcon windowIcon() See also setWindowIcon()

QApplication::~QApplication

[public destructor  virtual]

~QApplication() 清理此应用程序分配的所有窗口系统资源。 将全局变量qApp设置为nullptr。 QApplication::NormalColorNormalColor

Constant Description
QApplication::NormalColor 默认的颜色分配策略
QApplication::CustomColorCustomColor
Constant Description
:------- :-----
QApplication::CustomColor 与 X11 相同; 在 Windows 下按需分配颜色到调色板
QApplication::ManyColorManyColor
Constant Description
:------- :-----
QApplication::ManyColor 使用数千种颜色的应用程序的正确选择

有关完整的详细信息,请参见 setColorSpec()

此属性保持自动切换 SIP(软件输入面板)可见性 将此属性设置为True可以在输入接受键盘输入的小部件时自动显示 SIP。 此属性仅影响设置 WA_InputMethodEnabled 属性的窗口小部件,通常用于在键很少或没有键的设备上启动虚拟键盘。

** The property only has an effect on platforms that use software input panels.**

默认值依赖于平台

这个属性仅在毫秒内保留光标文本的闪烁时间。 闪烁时间是需求闪烁的时间+倒置时间+显示复原时间。通常文本光标只显示光标闪烁时间的一半时间。然后隐藏相同的时间,但这种情况是可以更改的。

X11 上的默认值是1000毫秒。在 windows 系统,控制面板的值是被用作来设置这个属性的光标闪烁时间,应用于所有应用程序。

我们推荐小部件不要缓存这个值,不然这样做可能会更改全局桌面的用户设置。

**Note:**如果禁止闪烁,这个属性值可以是负数。

这个属性以毫秒为单位存储两次点击鼠标间的间隔,区分鼠标双击和两次连续的鼠标点击。 X11 的默认值是400毫秒。在 Windows 和 Mac 平台,这个值取自操作系统。

这个属性保留用户可以交互的任意 GUI 元素的最小尺寸。 例如,不应将按钮的大小调整为小于全局支杆的大小。 重新实现可能在触摸屏或类似 I/O 设备上使用的 GUI 控件时,应考虑支杆的大小。

例子:

默认情况下,这个属性包含一个宽度和高度为 0 的 QSize 对象。

这个属性以毫秒为单位存储两次按键之间的间隔,区分一次敲击键盘和连续敲击键盘。 X11 的默认值是400毫秒。在 Windows 和 Mac 平台,这个值取自操作系统。

如果支持应用程序中的拖放,并希望在用户按住按钮移动光标一定距离后启动拖放操作,则应使用此属性的值作为所需的最小距离。

例如,如果将单击的鼠标位置存储在startPos,当前的鼠标位置储存在currentPos(例如鼠标移动事件中),可以像以下代码这样来确认鼠标拖动事件是否开始:

Qt 会在内部使用该值,如在 QFileDialog 中。

默认值(如果操作系统不提供一个不同的值的话)是10像素。

See also startDragTime() QPoint::manhattanLength() Drag and Drop 这个属性以毫秒为单位存储鼠标必须按下的时间,鼠标按下时间达到这个值,鼠标拖动事件和鼠标释放才可能开始。 如果在应用程序中支持鼠标按下和释放事件,以及想要用户在按住鼠标达到一个特定的时间后才开始鼠标拖动事件/鼠标释放事件的话,应该使用这个值。

Qt 会在内部使用该值,如在 QTextEditQLineEdit ,用于开始拖动鼠标。

默认值为500毫秒。

See also startDragDistance() Drag and Drop 此属性保存应用程序样式表。 默认情况下应用程序运行时,除非用户在命令行指定-stylesheet这个选项,否则这个属性将返回一个空字符串。

See also QWidget::setStyle() Qt Style Sheets 当鼠标滚轮转动时,这个属性存储一个 widget 可滚动的行数。 如果这个值超过了 widget 的可见行数,则 widget 应该将滚动操作添加page uppage down,如果 widget 是 QAbstractItemView 类,则滚动一line的结果取决于 widget 的 QAbstractItemView::verticalScrollMode() 设置。滚动一line可以表示 QAbstractItemView::ScrollPerItem ,或者滚 QAbstractItemView::ScrollPerPixel

默认情况下,此属性的值为3。

See also QStyleHints::wheelScrollLines() 此属性保存默认的窗口图标。 See also QWidget::setWindowIcon() Setting the Application Icon