PySide6.QtCore.QCoreApplication

class QCoreApplication

QCoreApplication 类为没有用户界面的 Qt 应用程序提供事件循环。更多

PySide6.QtCore.QCoreApplication 的继承图

继承者: QGuiApplication, QApplication

概要

属性

方法

虚拟方法

信号

静态函数

注意

本文档可能包含从C++自动翻译到Python的代码片段。我们始终欢迎对代码片段翻译的贡献。如果您发现翻译问题,您也可以通过在我们的https:/bugreports.qt.io/projects/PYSIDE上创建工单来告知我们。

详细描述

此类用于非GUI应用程序以提供其事件循环。对于使用Qt的非GUI应用程序,应该只有一个QCoreApplication对象。对于GUI应用程序,请参见QGuiApplication。对于使用Qt Widgets模块的应用程序,请参见QApplication。

QCoreApplication 包含主事件循环,处理并分发来自操作系统(例如,定时器和网络事件)和其他来源的所有事件。它还处理应用程序的初始化和终止,以及系统范围和应用程序范围的设置。

事件循环和事件处理

事件循环通过调用exec()启动。长时间运行的操作可以调用processEvents()以保持应用程序的响应性。

通常,我们建议您尽早地在main()函数中创建一个QCoreApplication、QGuiApplication或QApplication对象。exec()在事件循环退出之前不会返回;例如,当调用quit()时。

还提供了几个静态便利函数。QCoreApplication 对象可以通过 instance() 获取。事件可以通过 sendEvent() 发送,或者通过 postEvent() 发布到事件队列中。挂起的事件可以通过 removePostedEvents() 移除,或者通过 sendPostedEvents() 分发。

该类提供了一个quit()槽和一个aboutToQuit()信号。

应用程序和库路径

一个应用程序有一个applicationDirPath()和一个applicationFilePath()。库路径(参见QLibrary)可以通过libraryPaths()获取,并通过setLibraryPaths()addLibraryPath()removeLibraryPath()进行操作。

国际化和翻译

可以使用installTranslator()removeTranslator()来添加或删除翻译文件。应用程序字符串可以使用translate()进行翻译。tr()函数是基于translate()实现的。

访问命令行参数

传递给QCoreApplication构造函数的命令行参数应使用arguments()函数访问。

注意

QCoreApplication 移除选项 -qmljsdebugger="..."。它解析 qmljsdebugger 的参数,然后移除该选项及其参数。

对于更高级的命令行选项处理,创建一个QCommandLineParser

区域设置

在Unix/Linux系统上,Qt默认配置为使用系统的区域设置。这在使用POSIX函数时可能会导致冲突,例如,在浮点数和字符串等数据类型之间进行转换时,因为不同区域的表示法可能不同。为了解决这个问题,可以在初始化QApplication、QGuiApplication或QCoreApplication之后立即调用POSIX函数setlocale(LC_NUMERIC,"C"),以将用于数字格式化的区域设置重置为“C”区域。

另请参阅

QAbstractEventDispatcher QEventLoop 使用信号量的生产者和消费者 使用等待条件的生产者和消费者

class ApplicationFlags

在版本4.8中添加。

注意

当使用from __feature__ import true_property时,属性可以直接使用,否则通过访问器函数使用。

property applicationNameᅟ: str

此属性保存此应用程序的名称。

应用程序名称用于各种Qt类和模块中,最显著的是在使用默认构造函数构造QSettings时。其他用途包括格式化日志输出(参见qSetMessagePattern()),在QCommandLineParser的输出中,在QTemporaryDirQTemporaryFile的默认路径中,以及在QStandardPaths的一些文件位置中。Qt D-Bus、可访问性和XCB平台集成也使用应用程序名称。

如果未设置,应用程序名称默认为可执行文件名称。

Access functions:
property applicationVersionᅟ: str

此属性保存此应用程序的版本。

如果未设置,应用程序版本默认为从主应用程序可执行文件或包确定的平台特定值(自 Qt 5.9 起):

平台

来源

Windows(经典桌面)

VERSIONINFO资源的PRODUCTVERSION参数

macOS, iOS, tvOS, watchOS

信息属性列表的CFBundleVersion属性

Android

AndroidManifest.xml 清单元素的 android:versionName 属性

在其他平台上,默认值为空字符串。

Access functions:
property organizationDomainᅟ: str

此属性保存编写此应用程序的组织的互联网域名。

该值在QSettings类使用默认构造函数构造时使用。这避免了每次创建QSettings对象时重复此信息。

在Mac上,如果QSettings的organizationDomain()不是空字符串,则使用它作为组织;否则使用organizationName()。在所有其他平台上,QSettings使用organizationName()作为组织。

Access functions:
property organizationNameᅟ: str

此属性保存编写此应用程序的组织的名称。

该值在QSettings类使用默认构造函数构造时使用。这避免了每次创建QSettings对象时重复此信息。

在Mac上,如果organizationDomain()不是空字符串,QSettings会使用它作为组织;否则会使用organizationName()。在所有其他平台上,QSettings使用organizationName()作为组织。

Access functions:
property quitLockEnabledᅟ: bool

此属性表示使用QEventLoopLocker功能是否会导致应用程序退出。

当此属性为true时,最后一个剩余的QEventLoopLocker在应用程序上的释放将尝试退出应用程序。

请注意,尝试退出可能不一定会导致应用程序退出,例如如果仍有打开的窗口,或者Quit事件被忽略。

默认是 true

另请参阅

QEventLoopLocker

Access functions:
__init__()
__init__(args)
Parameters:

args – 字符串列表

构建一个Qt内核应用程序。内核应用程序是没有图形用户界面的应用程序。这类应用程序通常用于控制台或作为服务器进程。

args 参数由应用程序处理,并通过 arguments() 方法以更方便的形式提供。

aboutToQuit()

当应用程序即将退出主事件循环时,例如当事件循环级别降至零时,会发出此信号。这可能发生在应用程序内部调用quit()之后,或者当用户关闭整个桌面会话时。

如果您的应用程序需要进行一些最后一秒的清理工作,这个信号特别有用。请注意,在此状态下无法进行任何用户交互。

注意

此时主事件循环仍在运行,但在返回时不会处理进一步的事件,除了通过deleteLater()删除的对象的DeferredDelete事件。如果需要事件处理,请使用嵌套事件循环或手动调用processEvents()

另请参阅

quit()

static addLibraryPath(path)
Parameters:

路径 – 字符串

path添加到库路径列表的开头,确保首先搜索该路径以查找库。如果path为空或已在路径列表中,则路径列表不会更改。

默认路径列表包含一个或两个条目。第一个是插件的安装目录,即INSTALL/plugins,其中INSTALL是Qt的安装目录。第二个是应用程序自己的目录(不是当前目录),但只有在QCoreApplication对象实例化之后。

QCoreApplication的实例被销毁时,库路径将重置为默认值。

static applicationDirPath()
Return type:

字符串

返回包含应用程序可执行文件的目录。

例如,如果您已将Qt安装在C:\Qt目录中,并且您运行了regexp示例,此函数将返回“C:/Qt/examples/tools/regexp”。

在macOS和iOS上,这将指向实际包含可执行文件的目录,该目录可能位于应用程序包内(如果应用程序已打包)。

警告

在Linux上,此函数将尝试从/proc文件系统中获取路径。如果失败,它假设argv[0]包含可执行文件的绝对文件名。该函数还假设应用程序没有更改当前目录。

另请参阅

applicationFilePath()

static applicationFilePath()
Return type:

字符串

返回应用程序可执行文件的路径。

例如,如果您已将Qt安装在/usr/local/qt目录中,并且您运行了regexp示例,此函数将返回“/usr/local/qt/examples/tools/regexp/regexp”。

警告

在Linux上,此函数将尝试从/proc文件系统中获取路径。如果失败,它假设argv[0]包含可执行文件的绝对文件名。该函数还假设应用程序没有更改当前目录。

另请参阅

applicationDirPath()

static applicationName()
Return type:

字符串

另请参阅

setApplicationName()

属性 applicationNameᅟ 的获取器。

applicationNameChanged()

属性 applicationNameᅟ 的通知信号。

static applicationPid()
Return type:

整数

返回应用程序的当前进程ID。

static applicationVersion()
Return type:

字符串

属性 applicationVersionᅟ 的获取器。

applicationVersionChanged()

属性 applicationVersionᅟ 的通知信号。

static arguments()
Return type:

字符串列表

返回命令行参数的列表。

通常 arguments().at(0) 是程序名称,arguments().at(1) 是第一个参数,arguments().last() 是最后一个参数。请参阅下面关于 Windows 的说明。

调用此函数速度较慢 - 在解析命令行时,您应将结果存储在变量中。

警告

在Unix上,此列表是从传递给main()函数中的构造函数的argc和argv参数构建的。argv中的字符串数据使用fromLocal8Bit()进行解释;因此,例如,在运行于Latin1语言环境的系统上,无法传递日语命令行参数。大多数现代Unix系统没有此限制,因为它们是基于Unicode的。

在Windows上,只有在修改后的argv/argc参数传递给构造函数时,列表才会从argc和argv参数构建。在这种情况下,可能会出现编码问题。

否则,arguments() 是从 GetCommandLine() 的返回值构造的。因此,arguments().at(0) 给出的字符串可能不是 Windows 上的程序名称,具体取决于应用程序的启动方式。

checkPermission(permission)
Parameters:

权限QBluetoothPermission

Return type:

PermissionStatus

检查给定permission的状态

如果结果是Undetermined,则应通过requestPermission()请求权限以确定用户的意图。

另请参阅

requestPermission() 应用程序权限

checkPermission(permission)
Parameters:

权限QCalendarPermission

Return type:

PermissionStatus

检查给定permission的状态

如果结果是Undetermined,则应通过requestPermission()请求权限以确定用户的意图。

另请参阅

requestPermission() 应用程序权限

checkPermission(permission)
Parameters:

权限QCameraPermission

Return type:

PermissionStatus

检查给定permission的状态

如果结果是Undetermined,则应通过requestPermission()请求权限以确定用户的意图。

另请参阅

requestPermission() 应用程序权限

checkPermission(permission)
Parameters:

权限QContactsPermission

Return type:

PermissionStatus

检查给定permission的状态

如果结果是Undetermined,则应通过requestPermission()请求权限以确定用户的意图。

另请参阅

requestPermission() 应用程序权限

checkPermission(permission)
Parameters:

权限QLocationPermission

Return type:

PermissionStatus

检查给定permission的状态

如果结果是Undetermined,则应通过requestPermission()请求权限以确定用户的意图。

另请参阅

requestPermission() 应用程序权限

checkPermission(permission)
Parameters:

权限QMicrophonePermission

Return type:

PermissionStatus

检查给定permission的状态

如果结果是Undetermined,则应通过requestPermission()请求权限以确定用户的意图。

另请参阅

requestPermission() 应用程序权限

checkPermission(permission)
Parameters:

权限QPermission

Return type:

PermissionStatus

检查给定permission的状态

如果结果是Undetermined,则应通过requestPermission()请求权限以确定用户的意图。

另请参阅

requestPermission() 应用程序权限

static closingDown()
Return type:

布尔

如果应用程序对象正在被销毁,则返回true;否则返回false

另请参阅

startingUp()

static eventDispatcher()
Return type:

QAbstractEventDispatcher

返回指向主线程的事件分发器对象的指针。如果该线程没有事件分发器,此函数将返回None

另请参阅

setEventDispatcher()

static exec()
Return type:

整数

进入主事件循环并等待直到调用exit()。返回传递给exit()的值(如果通过quit()调用exit(),则该值为0)。

需要调用此函数以启动事件处理。主事件循环从窗口系统接收事件并将这些事件分派给应用程序小部件。

要使您的应用程序执行空闲处理(通过在没有任何挂起事件时执行特殊函数),请使用具有0ns超时的QChronoTimer。更高级的空闲处理方案可以通过使用processEvents()来实现。

我们建议您将清理代码连接到aboutToQuit()信号,而不是将其放在应用程序的main()函数中,因为在某些平台上,exec()调用可能不会返回。例如,在Windows上,当用户注销时,系统会在Qt关闭所有顶层窗口后终止进程。因此,不能保证应用程序有时间退出其事件循环并在exec()调用后执行main()函数末尾的代码。

另请参阅

quit() exit() processEvents() exec()

exec_()
Return type:

整数

static exit([retcode=0])
Parameters:

retcode – int

告诉应用程序以返回代码退出。

调用此函数后,应用程序将离开主事件循环并从对exec()的调用中返回。exec()函数返回returnCode。如果事件循环未运行,则此函数不执行任何操作。

按照惯例,returnCode 为 0 表示成功,任何非零值表示错误。

最佳实践是始终使用QueuedConnection将信号连接到此槽。如果在控制进入主事件循环之前(例如在“int main”调用exec()之前)发出连接到该槽的信号(非队列),则该槽无效,应用程序永远不会退出。使用队列连接可确保在控制进入主事件循环之前不会调用该槽。

请注意,与同名的C库函数不同,此函数确实会返回到调用者——停止的是事件处理。

还要注意,这个函数不是线程安全的。它应该只从主线程(QCoreApplication对象正在处理事件的线程)调用。要从另一个线程请求应用程序退出,可以使用quit(),或者使用QMetaMethod::invokeMethod()从主线程调用此函数。

另请参阅

quit() exec()

installNativeEventFilter(filterObj)
Parameters:

filterObjQAbstractNativeEventFilter

为应用程序在主线程中接收的所有本地事件安装事件过滤器 filterObj

事件过滤器 filterObj 通过其 nativeEventFilter() 函数接收事件,该函数在主线程中接收到的所有原生事件时被调用。

如果事件应该被过滤,即停止,nativeEventFilter() 函数应返回 true。它应返回 false 以允许正常的 Qt 处理继续:然后可以将本机事件转换为 QEvent 并由标准的 Qt event 过滤处理,例如 installEventFilter()

如果安装了多个事件过滤器,最后安装的过滤器将首先被激活。

注意

这里设置的过滤器函数接收原生消息,即MSG或XCB事件结构体。

注意

当设置了AA_PluginApplication属性时,应用程序中的原生事件过滤器将被禁用。

为了最大程度的可移植性,您应始终尽可能尝试使用QEventinstallEventFilter()

另请参阅

installEventFilter()

static installTranslator(messageFile)
Parameters:

messageFileQTranslator

Return type:

布尔

将翻译文件 translationFile 添加到用于翻译的翻译文件列表中。

可以安装多个翻译文件。翻译文件的搜索顺序与安装顺序相反,因此最后安装的翻译文件会最先被搜索,而最先安装的翻译文件会最后被搜索。一旦找到包含匹配字符串的翻译,搜索就会停止。

安装或移除一个QTranslator,或更改已安装的QTranslator,会为QCoreApplication实例生成一个LanguageChange事件。QApplication实例会将事件传播到所有顶层窗口部件,其中重新实现的changeEvent可以通过tr()函数将用户可见的字符串传递给相应的属性设置器来重新翻译用户界面。由Qt Widgets Designer生成的用户界面类提供了一个可以调用的retranslateUi()函数。

函数成功时返回 true,失败时返回 false。

注意

QCoreApplication 不会获取 translationFile 的所有权。

另请参阅

removeTranslator() translate() load() 准备 动态 语言 更改

static instance()
Return type:

QCoreApplication

返回指向应用程序的QCoreApplication(或QGuiApplication/QApplication)实例的指针。

如果没有分配实例,则返回None

static isQuitLockEnabled()
Return type:

布尔

属性 quitLockEnabledᅟ 的获取器。

static isSetuidAllowed()
Return type:

布尔

static libraryPaths()
Return type:

字符串列表

返回应用程序在动态加载库时将搜索的路径列表。

此函数的返回值在创建QCoreApplication时可能会发生变化。不建议在创建QCoreApplication之前调用它。如果已知,应用程序可执行文件的目录(不是工作目录)是列表的一部分。为了使它已知,必须构造一个QCoreApplication,因为它将使用argv[0]来找到它。

Qt 提供了默认的库路径,但也可以使用 qt.conf 文件来设置路径。在此文件中指定的路径将覆盖默认值。请注意,如果 qt.conf 文件位于应用程序可执行文件的目录中,则在创建 QCoreApplication 之前可能无法找到它。如果在调用此函数时未找到该文件,则将使用默认的库路径。

如果存在插件的安装目录,列表将包括该目录(插件的默认安装目录是INSTALL/plugins,其中INSTALL是Qt的安装目录)。QT_PLUGIN_PATH环境变量的冒号分隔条目总是被添加。当应用程序可执行文件的目录已知时,插件的安装目录(及其存在)可能会发生变化。

另请参阅

setLibraryPaths() addLibraryPath() removeLibraryPath() QLibrary 如何 创建 Qt 插件

notify(receiver, event)
Parameters:
Return type:

布尔

event发送到receiverreceiver->event(event)。返回从接收者的事件处理程序返回的值。请注意,此函数用于发送到任何线程中任何对象的所有事件。

对于某些类型的事件(例如鼠标和键盘事件),如果接收者对事件不感兴趣(即返回false),事件将传播到接收者的父对象,依此类推,直到顶级对象。

有五种不同的方式可以处理事件;重新实现这个虚函数只是其中之一。下面列出了所有五种方法:

  1. 重新实现 paintEvent()、mousePressEvent() 等。这是最常见、最简单但功能最弱的方式。

  2. 重新实现此函数。这非常强大,提供了完全的控制;但一次只能有一个子类处于活动状态。

  3. instance()上安装事件过滤器。这样的事件过滤器能够处理所有小部件的所有事件,因此它与重新实现notify()一样强大;此外,还可以有多个应用程序全局事件过滤器。全局事件过滤器甚至可以看到禁用小部件的鼠标事件。请注意,应用程序事件过滤器仅为主线程中的对象调用。

  4. 重新实现 event()(如 QWidget 所做的那样)。如果你这样做,你将获得 Tab 键的按下事件,并且你可以在任何特定小部件的事件过滤器之前看到这些事件。

  5. 在对象上安装事件过滤器。这样的事件过滤器会获取所有事件,包括Tab和Shift+Tab按键事件,只要它们不改变焦点小部件。

未来方向: 在Qt 7中,此函数将不会为主线程之外的对象调用。需要此功能的应用程序在此期间应寻找其他解决方案来满足其事件检查需求。此更改可能会扩展到主线程,导致此函数被弃用。

警告

如果你重写这个函数,你必须确保所有处理事件的线程在你的应用程序对象开始销毁之前停止这样做。这包括你可能使用的其他库启动的线程,但不适用于Qt自己的线程。

static organizationDomain()
Return type:

字符串

属性 organizationDomainᅟ 的获取器。

organizationDomainChanged()

属性 organizationDomainᅟ 的通知信号。

static organizationName()
Return type:

字符串

另请参阅

setOrganizationName()

属性 organizationNameᅟ 的获取器。

organizationNameChanged()

属性 organizationNameᅟ 的通知信号。

static postEvent(receiver, event[, priority=Qt.NormalEventPriority])
Parameters:

将事件 event 添加到事件队列中,并将对象 receiver 作为事件的接收者,然后立即返回。

事件必须分配在堆上,因为事件发布队列将取得事件的所有权,并在事件发布后删除它。在事件发布后访问事件是不安全的

当控制返回到主事件循环时,队列中存储的所有事件将使用notify()函数发送。

事件按priority降序排列,即priority较高的事件排在priority较低的事件之前。priority可以是任何整数值,即在INT_MAX和INT_MIN之间,包括这两个值;更多详情请参见EventPriority。具有相同priority的事件将按发布顺序处理。

static processEvents([flags=QEventLoop.AllEvents])
Parameters:

flagsProcessEventsFlag 的组合

根据指定的flags处理调用线程的一些待处理事件。

不推荐使用此函数。相反,建议将长时间操作从GUI线程移动到辅助线程中,并完全避免嵌套事件循环处理。如果确实需要事件处理,请考虑使用QEventLoop代替。

如果您正在运行一个本地循环,该循环在没有事件循环的情况下连续调用此函数,则DeferredDelete事件将不会被处理。这可能会影响依赖于DeferredDelete事件以正常工作的部件的行为,例如QToolTip。另一种方法是从该本地循环中调用sendPostedEvents()

调用此函数仅处理调用线程的事件,并在处理完所有可用事件后返回。可用事件是在函数调用之前排队的事件。这意味着在函数运行时发布的事件将被排队,直到下一轮事件处理。

另请参阅

exec() QTimer QChronoTimer processEvents() sendPostedEvents()

static processEvents(flags, deadline)
Parameters:

这是一个重载函数。

处理调用线程的待处理事件,直到deadline到期,或者直到没有更多事件需要处理,以先发生者为准。

不推荐使用此函数。相反,建议将长时间的操作从GUI线程移动到辅助线程中,并完全避免嵌套事件循环处理。如果确实需要事件处理,请考虑使用QEventLoop代替。

调用此函数仅处理调用线程的事件。

注意

processEvents()重载不同,此函数还会处理在函数运行期间发布的事件。

注意

在超时之前排队的所有事件都将被处理,无论需要多长时间。

另请参阅

exec() QTimer QChronoTimer processEvents()

static processEvents(flags, maxtime)
Parameters:

这是一个重载函数。

为调用线程处理挂起的事件,持续ms毫秒,或者直到没有更多事件需要处理,以较短者为准。

这相当于调用:

QCoreApplication::processEvents(flags, QDeadlineTimer(ms));
static quit()

警告

本节包含从C++自动翻译到Python的代码片段,可能包含错误。

请求应用程序退出。

如果应用程序阻止退出,例如如果其中一个窗口无法关闭,则请求可能会被忽略。应用程序可以通过处理应用程序级别的Quit事件或各个窗口的Close事件来影响这一点。

如果退出未被中断,应用程序将以返回代码0(成功)退出。

要退出应用程序而不被中断,请直接调用exit()。请注意,该方法不是线程安全的。

最佳实践是始终使用QueuedConnection将信号连接到此槽。如果在控制进入主事件循环之前(例如在“int main”调用exec()之前)发出连接到该槽的信号(非队列),则该槽无效,应用程序永远不会退出。使用队列连接可确保在控制进入主事件循环之前不会调用该槽。

示例:

quitButton = QPushButton("Quit")
quitButton.clicked.connect(app.quit, Qt::QueuedConnection)

线程安全说明:此函数可以从任何线程调用,以线程安全的方式导致当前正在运行的主应用程序循环退出。但是,如果在同一时间QCoreApplication对象正在被销毁,则不能保证线程安全。

另请参阅

exit() aboutToQuit()

static removeLibraryPath(path)
Parameters:

路径 – 字符串

从库路径列表中移除path。如果path为空或不在路径列表中,则列表不会更改。

QCoreApplication的实例被销毁时,库路径将重置为默认值。

removeNativeEventFilter(filterObj)
Parameters:

filterObjQAbstractNativeEventFilter

从此对象中移除一个事件 filterObject。如果未安装此类事件过滤器,则忽略该请求。

当此对象被销毁时,此对象的所有事件过滤器将自动移除。

即使在事件过滤器激活期间(即从nativeEventFilter()函数中),删除事件过滤器也始终是安全的。

static removePostedEvents(receiver[, eventType=0])
Parameters:
  • receiverQObject

  • eventType – int

移除所有使用postEvent()receiver发布的给定eventType的事件。

事件不会被分发,而是从队列中移除。你通常不需要调用这个函数。如果你确实调用了它,请注意,终止事件可能会导致receiver破坏一个或多个不变量。

如果 receiverNone,则移除所有对象的 eventType 事件。如果 eventType 是 0,则移除 receiver 的所有事件。你永远不应该在 eventType 为 0 时调用此函数。

static removeTranslator(messageFile)
Parameters:

messageFileQTranslator

Return type:

布尔

从该应用程序使用的翻译文件列表中移除翻译文件 translationFile。(它不会从文件系统中删除翻译文件。)

函数成功时返回 true,失败时返回 false。

requestPermission(permission, context, functor)
Parameters:
requestPermission(permission, context, functor)
Parameters:
requestPermission(permission, context, functor)
Parameters:
requestPermission(permission, context, functor)
Parameters:
requestPermission(permission, context, functor)
Parameters:
requestPermission(permission, context, functor)
Parameters:
resolveInterface(name, revision)
Parameters:
  • name – str

  • revision – int

Return type:

void

static sendEvent(receiver, event)
Parameters:
Return type:

布尔

警告

本节包含从C++自动翻译到Python的代码片段,可能包含错误。

使用notify()函数将事件event直接发送给接收者receiver。返回事件处理程序返回的值。

事件在发送后不会被删除。通常的做法是在堆栈上创建事件,例如:

event = QMouseEvent(QEvent.MouseButtonPress, pos, 0, 0, 0)
QApplication.sendEvent(mainWindow, event)

另请参阅

postEvent() notify()

static sendPostedEvents([receiver=None[, event_type=0]])
Parameters:
  • receiverQObject

  • event_type – int

立即分派所有先前使用postEvent()排队的事件,这些事件是针对对象receiver并且具有事件类型event_type的。

来自窗口系统的事件不是由此函数分发的,而是由processEvents()分发的。

如果 receiverNone,则 event_type 的事件会发送给所有对象。如果 event_type 是 0,则所有事件都会发送给 receiver

注意

此方法必须从其QObject参数receiver所在的线程中调用。

另请参阅

postEvent()

static setApplicationName(application)
Parameters:

application – str

另请参阅

applicationName()

属性 applicationNameᅟ 的设置器。

static setApplicationVersion(version)
Parameters:

版本 – str

另请参阅

applicationVersion()

属性 applicationVersionᅟ 的设置器。

static setAttribute(attribute[, on=true])
Parameters:
static setEventDispatcher(eventDispatcher)
Parameters:

eventDispatcherQAbstractEventDispatcher

将主线程的事件调度器设置为eventDispatcher。这只有在尚未安装事件调度器时才可能实现。也就是说,在QCoreApplication实例化之前。此方法拥有该对象的所有权。

另请参阅

eventDispatcher()

static setLibraryPaths(paths)
Parameters:

paths – 字符串列表

设置在使用QLibrary加载插件时要搜索的目录列表为paths。所有现有的路径将被删除,路径列表将由paths中给出的路径和应用程序的路径组成。

QCoreApplication的实例被销毁时,库路径将重置为默认值。

static setOrganizationDomain(orgDomain)
Parameters:

orgDomain – str

另请参阅

organizationDomain()

属性 organizationDomainᅟ 的设置器。

static setOrganizationName(orgName)
Parameters:

orgName – str

另请参阅

organizationName()

属性 organizationNameᅟ 的设置器。

static setQuitLockEnabled(enabled)
Parameters:

enabled – 布尔值

另请参阅

isQuitLockEnabled()

属性 quitLockEnabledᅟ 的设置器。

static setSetuidAllowed(allow)
Parameters:

allow – 布尔值

shutdown()
static startingUp()
Return type:

布尔

如果尚未创建应用程序对象,则返回true;否则返回false

另请参阅

closingDown()

static testAttribute(attribute)
Parameters:

属性ApplicationAttribute

Return type:

布尔

static translate(context, key[, disambiguation=None[, n=-1]])
Parameters:
  • context – str

  • key – str

  • disambiguation – str

  • n – 整数

Return type:

字符串

返回sourceText的翻译文本,通过查询已安装的翻译文件。翻译文件从最近安装的文件开始搜索,直到第一个安装的文件。

tr() 更方便地提供了这个功能。

context 通常是一个类名(例如,“MyDialog”),而 sourceText 是英文文本或简短的标识文本。

disambiguation 是一个标识字符串,用于在同一上下文中使用相同的 sourceText 时区分不同的角色。默认情况下,它是 None

请参阅QTranslatortr()文档,了解更多关于上下文、消除歧义和注释的信息。

n%n 结合使用以支持复数形式。详情请参见 tr()

如果没有任何翻译文件包含sourceTextcontext中的翻译,此函数将返回一个等同于sourceTextQString

此函数不是虚拟的。您可以通过子类化QTranslator来使用替代的翻译技术。

另请参阅

tr() installTranslator() removeTranslator() 国际化 翻译