- class QCoreApplication#
QCoreApplication
类为没有UI的Qt应用程序提供事件循环。《更多》…继承自:
QGuiApplication
,QApplication
概述#
属性#
applicationName
- 此应用程序的名称applicationVersion
- 此应用程序的版本organizationDomain
- 编写此应用程序的组织的Internet域名organizationName
- 编写此应用程序的组织的名称quitLockEnabled
- QEventLoopLocker功能的用法是否会导致应用程序退出
方法#
虚方法#
定义
notify()
信号#
静态函数#
定义
arguments()
定义
exec()
定义
exit()
定义
instance()
定义
postEvent()
定义
quit()
定义
sendEvent()
定义
startingUp()
定义
translate()
注意
此文档可能包含从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()
。可以使用libraryPaths()
检索库路径(见QLibrary
),并由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”区域。- 类 ApplicationFlags#
新特性自 4.8 版本开始。
注意
可以使用
from __feature__ import true_property
使用或通过访问器函数来直接使用属性。- 属性 applicationName: str#
此属性持有应用程序的名称。
应用程序名称用于各种Qt类和模块中,最显著的是在使用默认构造函数创建时应用的
QSettings
中。其他用法包括格式化日志输出(参见qSetMessagePattern()
),在QCommandLineParser
的输出中,在QTemporaryDir
和QTemporaryFile
的默认路径中,以及在QStandardPaths
的某些文件位置中。Qt D-Bus、无障碍性和XCB平台集成也使用了应用程序名称。如果未设置,应用程序名称将默认为可执行文件名。
- property applicationVersion: str#
此属性包含该应用程序的版本。
如果未设置,应用程序版本将默认为从主应用程序可执行文件或包中确定的平台特定值(自Qt 5.9起)
平台
源
Windows(经典桌面)
VERSIONINFO资源的PRODUCTVERSION参数
macOS、iOS、tvOS、watchOS
信息属性列表的CFBundleVersion属性
Android
AndroidManifest.xml清单元素中android:versionName属性
在其他平台上,默认为空字符串。
- property organizationDomain: str#
此属性包含编写此应用程序的组织的Internet域。
当使用默认构造函数创建时,该值将由
QSettings
类使用。这省去了每次创建一个QSettings
对象时重复此信息。在 Mac 上,如果
QSettings
不是一个空字符串,则使用organizationName()
作为组织。在其他所有平台上,QSettings
使用organizationName()
作为组织。- 属性 organizationName: str#
此属性包含编写此应用程序的组织名称。
当使用默认构造函数创建时,该值将由
QSettings
类使用。这省去了每次创建一个QSettings
对象时重复此信息。在 Mac 上,如果
QSettings
不是空字符串,则使用organizationDomain()
作为组织;否则,它使用 organizationName(). 在其他所有平台上,QSettings
使用 organizationName() 作为组织。- 属性 quitLockEnabled: bool#
此属性包含是否使用
QEventLoopLocker
功能会导致应用程序退出的情况。默认值为
true
。另请参阅
QEventLoopLocker
- __init__(args)#
- 参数:
args – 字符串列表
构建一个 Qt 内核应用程序。内核应用程序是无需图形用户界面的应用程序。这类应用程序在控制台或作为服务器进程使用。
args 参数由应用程序处理,并通过
arguments()
方法以一种更方便的形式提供。- __init__()
- aboutToQuit()#
当应用程序即将退出主事件循环时,会发出此信号,例如,当事件循环层级降至零时。这可能发生在从应用程序内部调用
quit()
或用户关闭整个桌面会话之后。如果您的应用程序需要在最后一刻进行一些清理,则此信号特别有用。注意在此状态下无法进行用户交互。
注意
此时主事件循环仍在运行,但返回后将不会处理进一步的除 DeferredDelete 事件之外的任何事件。这些事件是通过 deleteLater() 删除的对象触发的。如果需要事件处理,请使用嵌套事件循环或手动调用 processEvents()。
另请参阅
- static addLibraryPath(arg__1)#
- 参数:
arg__1 – 字符串
将
path
添加到库路径列表的开头,确保首先搜索库。如果path
为空或已存在于路径列表中,则路径列表不更改。默认路径列表包括一个或两个条目。第一个是插件的安装目录,即
INSTALL/plugins
,其中INSTALL
是 Qt 安装的目录。第二个是应用程序的自身目录(不是 当前目录),但仅在 QCoreApplication 对象实例化之后。在销毁 QCoreApplication 的实例时,将重置库路径到默认状态。
- 静态applicationDirPath()#
- 返回类型:
str
返回包含应用程序可执行文件的目录。
例如,如果您将 Qt 安装在
C:\Qt
目录中,并运行regexp
示例,此函数将返回 "C:/Qt/examples/tools/regexp"。在 macOS 和 iOS 上,这将指向实际包含可执行文件的目录,这可能位于应用程序包内(如果应用程序已打包)。
警告:
在 Linux 上,此函数将尝试从
/proc
文件系统获取路径。如果失败,它假定argv[0]
包含可执行文件的绝对文件名。此函数还假定应用程序未更改当前目录。- 静态applicationFilePath()#
- 返回类型:
str
返回应用程序可执行文件的文件路径。
例如,如果您将 Qt 安装在
/usr/local/qt
目录中,并运行regexp
示例,此函数将返回 “/usr/local/qt/examples/tools/regexp/regexp”。警告:
在 Linux 上,此函数将尝试从
/proc
文件系统获取路径。如果失败,它假定argv[0]
包含可执行文件的绝对文件名。此函数还假定应用程序未更改当前目录。另请参阅
- 静态applicationName()#
- 返回类型:
str
另请参阅
属性
applicationName
的获取器。- applicationNameChanged()#
属性
applicationName
的通知信号。- 静态applicationPid()#
- 返回类型:
int
返回应用程序的当前进程 ID。
- 静态applicationVersion()#
- 返回类型:
str
属性
applicationVersion
的获取器。- applicationVersionChanged()#
属性
applicationVersion属性
的通知信号。- 静态 arguments()#
- 返回类型:
字符串列表
返回命令行参数列表。
通常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)#
- 参数:
permission –
QPermission
- 返回类型:
检查给定
permission
的状态如果结果是
Undetermined
则应该通过 requestPermission() 请求权限以确定用户的意图。另请参阅
requestPermission() 应用程序权限
- checkPermission(permission)
- 参数:
permission –
QMicrophonePermission
- 返回类型:
检查给定
permission
的状态如果结果是
Undetermined
则应该通过 requestPermission() 请求权限以确定用户的意图。另请参阅
requestPermission() 应用程序权限
- checkPermission(permission)
- 参数:
permission –
QLocationPermission
- 返回类型:
检查给定
permission
的状态如果结果是
Undetermined
则应该通过 requestPermission() 请求权限以确定用户的意图。另请参阅
requestPermission() 应用程序权限
- checkPermission(permission)
- 参数:
权限 –
QCameraPermission
- 返回类型:
检查给定
permission
的状态如果结果是
Undetermined
则应该通过 requestPermission() 请求权限以确定用户的意图。另请参阅
requestPermission() 应用程序权限
- checkPermission(permission)
- 参数:
权限 –
QCalendarPermission
- 返回类型:
检查给定
permission
的状态如果结果是
Undetermined
则应该通过 requestPermission() 请求权限以确定用户的意图。另请参阅
requestPermission() 应用程序权限
- checkPermission(permission)
- 参数:
权限 –
QBluetoothPermission
- 返回类型:
检查给定
permission
的状态如果结果是
Undetermined
则应该通过 requestPermission() 请求权限以确定用户的意图。另请参阅
requestPermission() 应用程序权限
- checkPermission(permission)
- 参数:
权限 –
QContactsPermission
- 返回类型:
检查给定
permission
的状态如果结果是
Undetermined
则应该通过 requestPermission() 请求权限以确定用户的意图。另请参阅
requestPermission() 应用程序权限
- 静态 closingDown()#
- 返回类型:
bool
如果应用对象正在被销毁,则返回
true
;否则返回false
。另请参阅
- 静态 eventDispatcher()#
- 返回类型:
返回主线程事件调度器的指针。如果没有为线程创建事件调度器,则此函数返回
None
。另请参阅
- 静态 exec()#
- 返回类型:
int
进入主事件循环,直到调用
exit()
。返回传递给exit()
的值(如果通过quit()
调用,则为 0)。需要调用此函数以启动事件处理。主事件循环从窗口系统接收事件并将这些事件分派到应用小部件。
要使您的应用执行空闲处理(在没有挂起事件时执行特殊函数),请使用超时为 0 的
QTimer
。更高级的空闲处理方案可以使用processEvents()
实现。我们建议您将清理代码连接到
aboutToQuit()
信号,而不是将其放入应用的main()
函数中,因为在某些平台上,exec() 调用可能不会返回。例如,在 Windows 上,当用户注销时,系统会在 Qt 关闭所有顶层窗口后终止进程。因此,无法保证应用有足够的时间退出其事件循环并在 exec() 调用后执行main()
函数末尾的代码。另请参阅
quit()
exit()
processEvents()
exec()
- exec_()#
- 返回类型:
int
- static exit([retcode=0])#
- 参数:
retcode – int
指示应用程序以返回代码退出。
在此函数被调用后,应用程序离开主事件循环,并从对
exec()
的调用中返回。该exec()
函数返回returnCode
。如果事件循环并未运行,此函数不做任何操作。按照惯例,一个返回代码为0表示成功,任何非零值都表示错误。
为了良好的实践,最好总是使用
QueuedConnection
将信号连接到槽。如果一个连接(非队列)到该槽的信号在控制进入主事件循环之前发出(例如在“int main”调用exec()
之前),该槽将没有任何效果,应用程序永远不会退出。使用队列连接确保槽将在控制进入主事件循环之后被调用。请注意,与同名的C库函数不同,此函数确实返回到调用者——停止的是事件处理。
还需要注意的是,该函数不是线程安全的。它应该仅从主线程中调用(在
QCoreApplication
对象处理事件的那个线程)。要从另一个线程请求应用程序退出,要么使用quit()
,要么调用此函数从主线程使用QMetaMethod::invokeMethod()
执行。- installNativeEventFilter(filterObj)#
- 参数:
filterObj –
QAbstractNativeEventFilter
为主线程中接收到的所有原生事件安装事件过滤器
filterObj
。事件过滤器
filterObj
通过其nativeEventFilter()
函数接收事件,该函数会在主线程中接收所有原生事件时被调用。方法
nativeEventFilter()
应当在需要过滤事件(即停止事件)时返回 true,否则应该返回 false 以允许 Qt 正常处理继续进行:原生事件然后可以被转换为一个QEvent
并由标准的 Qtevent
过滤来处理,例如installEventFilter()
。如果有多个事件过滤器被安装,最后安装的过滤器会被首先激活。
注意
这里设置的过滤器函数接收原生消息,即 MSG 或 XCB 事件结构。
注意
当设置
AA_PluginApplication
属性时,应用程序将禁用原生事件过滤器。为了最大限度的兼容性,在可能的情况下,您应始终尝试使用
QEvent
和installEventFilter()
。另请参阅
- staticinstallTranslator(messageFile)
- 参数:
messageFile –
QTranslator
- 返回类型:
bool
将翻译文件
translationFile
添加到用于翻译的翻译文件列表中。可以安装多个翻译文件。翻译文件按安装的反向顺序搜索,因此最先安装的翻译文件会被最先搜索,而最后安装的翻译文件会被最后搜索。搜索会在找到包含匹配字符串的翻译之后停止。
安装或删除一个
QTranslator
,或者更改已安装的QTranslator
,将产生一个LanguageChange
事件为QCoreApplication
实例。QApplication 实例会将事件传播到所有顶层小部件,其中 changeEvent 的重新实现可以通过tr()
函数将用户可见的字符串传递给相应的属性设置器,从而重新翻译用户界面。Qt Designer 生成的用户界面类提供一个可以调用的retranslateUi()
函数。该函数在成功时返回
true
,在失败时返回false
。- static instance()
- 返回类型:
返回指向应用程序的
QCoreApplication
(或 QGuiApplication/QApplication)实例的指针。如果没有分配实例,则返回
None
。- static isQuitLockEnabled()
- 返回类型:
bool
quitLockEnabled 属性的获取器。
- static isSetuidAllowed()
- 返回类型:
bool
- static libraryPaths()
- 返回类型:
字符串列表
返回应用程序在动态加载库时将搜索的路径列表。
函数的返回值在创建
QCoreApplication
时可能会改变。不建议在创建QCoreApplication
之前调用它。如果已知,应用程序的可执行文件目录(不是工作目录)将是列表的一部分。为了使其已知,必须构建QCoreApplication
,因为将使用argv[0]
来查找它。Qt提供默认库路径,但也可以使用qt.conf文件来设置。在此文件中指定的路径将覆盖默认值。请注意,如果qt.conf文件位于应用程序可执行文件的目录中,它可能直到创建
QCoreApplication
之前都不会找到。如果在此函数调用时找不到,将使用默认库路径。列表将包括如果存在则包含插件的安装目录(插件的默认安装目录为
INSTALL/plugins
,其中INSTALL
是Qt安装的目录)。始终添加由冒号分隔的QT_PLUGIN_PATH
环境变量的条目。插件安装目录(及其存在性)可能在使用程序可执行文件的目录已知时更改。另请参阅
setLibraryPaths()
addLibraryPath()
removeLibraryPath()
QLibrary
如何创建Qt插件将事件
event
发送到receiver
:receiver
->event(event
)。返回接收器事件处理程序返回的值。请注意,此函数会为发送到任何线程中任何对象的所有事件调用。对于某些类型的事件(例如,鼠标和键盘事件),如果接收者不感兴趣(即它返回
false
),则事件将传播到接收者的父级,依此类推,直到顶层对象。事件可以以五种不同的方式进行处理;重新实现此虚拟函数只是其中之一。以下是所有五种方法的列表。
重新实现paintEvent()、mousePressEvent()等方法。这是最常见、最容易、但功能最弱的方法。
重新实现此功能。这是一种非常强大的方法,提供完全控制;但一次只能有一个子类有效。
在
instance()
上安装事件过滤器。这种事件过滤器能够处理所有小部件的所有事件,因此它和重新实现notify()一样强大。此外,可以有多个应用程序级的全局事件过滤器。甚至可以看到禁用小部件的鼠标事件。请注意,应用程序级事件过滤器仅针对主线程中的对象调用。重新实现
event()
(如QWidget所做的那样)。如果你这样做,你将得到Tab键的按下,并且在任何特定小部件的事件过滤器之前看到这些事件。在对象上安装事件过滤器。这种事件过滤器接收所有事件,包括Tab键和Shift+Tab键的按下事件,只要它们不会改变焦点小部件。
未来方向: 对于Qt 7中主线程外部的对象,此函数将不会被调用。需要在其他解决方案之间找到功能实现,因为这种更改可能会扩展到主线程,从而弃用此函数。
警告:
如果你重写了此函数,你必须确保在应用程序对象开始销毁之前,所有处理事件的线程都停止处理。这包括你可能使用的其他库启动的线程,但不适用于Qt自己的线程。
- static organizationDomain()#
- 返回类型:
str
属性
organizationDomain
的获取器。- organizationDomainChanged()#
属性
organizationDomain
变化的信号。- static organizationName()#
- 返回类型:
str
属性
organizationName
的获取器。- organizationNameChanged()#
属性
organizationName
的通知信号。- static postEvent(receiver, event[, priority=Qt.NormalEventPriority])#
将事件
event
添加到事件队列,将对象receiver
作为事件接收者,并立即返回。由于发布事件队列将获得事件的所有权并在发布后删除它,因此事件必须在堆上分配。发布事件之后访问事件是不安全的。
当控制返回到主事件循环时,所有存储在队列中的事件都将通过
notify()
函数发送。事件根据降序的
priority
排序,即具有高priority
的事件将排在前,具有低priority
的事件排在后。priority
可以是任何整数值,即在 INT_MAX 和 INT_MIN 之间(包含);有关更多详细信息,请参阅EventPriority
。- static processEvents([flags=QEventLoop.AllEvents])#
- 参数:
flags –
ProcessEventsFlag
的组合
根据指定的
flags
处理调用的线程中的一些挂起事件。不建议使用此函数。相反,最好将长操作从GUI线程移至辅助线程中,并完全避免嵌套事件循环处理。如果确实需要进行事件处理,考虑使用
QEventLoop
。如果您正在运行一个本地循环,该循环连续调用此函数,而没有事件循环,则不会处理
DeferredDelete
事件。这可能会影响依赖于DeferredDelete
事件的widget的行为,例如QToolTip。另一种选择是在该本地循环内部调用sendPostedEvents()
。调用此函数只处理调用线程中的事件,处理完所有可用事件后返回。可用事件是在调用函数之前入队的。这意味着在函数运行期间发布的事件将排队,直到下一次事件处理轮次。
- static processEvents(flags, deadline)
- 参数:
flags –
ProcessEventsFlag
的组合deadline –
QDeadlineTimer
这是一个重载函数。
处理挂起事件的调用线程,直到
deadline
过期,或者没有更多事件要处理,以先发生者为准。不建议使用此函数。相反,最好将长操作从GUI线程移至辅助线程中,并完全避免嵌套事件循环处理。如果确实需要进行事件处理,考虑使用
QEventLoop
。调用此函数仅处理调用线程的事件。
注意
与
processEvents()
重载不同,此函数还处理在函数运行期间发布的事件。- static processEvents(flags, maxtime)
- 参数:
flags –
ProcessEventsFlag
的组合maxtime – 整数
这是一个重载函数。
对于调用线程,处理挂起的event,持续时间为
ms
毫秒或直到没有更多待处理的event,以先到者为准。这相当于调用
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
对象时调用,则不能保证线程安全。另请参阅
- static removeLibraryPath(arg__1)
- 参数:
arg__1 – 字符串
从库路径列表中移除
path
。如果path
为空或不位于路径列表中,则列表不更改。在销毁 QCoreApplication 的实例时,将重置库路径到默认状态。
- removeNativeEventFilter(filterObj)
- 参数:
filterObj –
QAbstractNativeEventFilter
从此对象中移除一个事件
filterObject
。如果尚未安装此类事件过滤器,则请求将被忽略。当此对象被销毁时,此对象的所有事件过滤器将自动移除。
移除事件过滤器始终是安全的,即使在事件过滤器激活期间(即在nativeEventFilter()函数中)也是如此。
移除所有使用
postEvent()
为receiver
发布的指定eventType
的事件。事件不会被分发,相反,它们将从队列中移除。你绝对不需要调用此函数。如果你调用它,请注意,终止事件可能会导致
receiver
打破一个或多个不变性。如果
receiver
为None
,将移除所有对象的事件类型eventType
的事件。如果eventType
为0,将为receiver
移除所有事件。你绝对不应该使用事件类型0调用此函数。- static removeTranslator(messageFile)#
- 参数:
messageFile –
QTranslator
- 返回类型:
bool
从此应用程序使用的翻译文件列表中移除翻译文件
translationFile
。(它不会从文件系统中删除翻译文件。)该函数在成功时返回
true
,在失败时返回false
。- requestPermission(permission, context, functor)#
- 参数:
权限 –
QBluetoothPermission
context –
QObject
functor –
PyCallable
- requestPermission(permission, context, functor)
- 参数:
权限 –
QCalendarPermission
context –
QObject
functor –
PyCallable
- requestPermission(permission, context, functor)
- 参数:
权限 –
QCameraPermission
context –
QObject
functor –
PyCallable
- requestPermission(permission, context, functor)
- 参数:
权限 –
QContactsPermission
context –
QObject
functor –
PyCallable
- requestPermission(permission, context, functor)
- 参数:
permission –
QLocationPermission
context –
QObject
functor –
PyCallable
- requestPermission(permission, context, functor)
- 参数:
permission –
QMicrophonePermission
context –
QObject
functor –
PyCallable
- resolveInterface(name, revision)#
- 参数:
name – 字符串
revision – 整数
- 返回类型:
void
警告:
本节包含从C++自动转换为Python的代码片段,可能存在错误。
使用
notify()
函数直接将事件event
发送到接收者receiver
,返回事件处理器返回的值。当事件已被发送时,事件不会被删除。常规方法是创建事件堆栈,例如
event = QMouseEvent(QEvent.MouseButtonPress, pos, 0, 0, 0) QApplication.sendEvent(mainWindow, event)
另请参阅
立即分发给之前使用
postEvent()
排队的事件,并且针对对象receiver
及具有事件类型event_type
的事件。窗口系统的事件不会通过此函数分发,而是通过
processEvents()
分发。如果
receiver
为None
,则发送event_type
的事件给所有对象。如果event_type
为 0,则是针对receiver
发送所有事件。- 静态 setApplicationName(application)#
- 参数:
application – 字符串
另请参阅
属性
applicationNameᅟ
的设置器。- 静态 setApplicationVersion(version)#
- 参数:
version – 字符串
另请参阅
设置
applicationVersion功能
属性的setter。- 静态 setAttribute(attribute[, on=true])#
- 参数:
attribute –
ApplicationAttribute
on – 布尔值
- 静态 setEventDispatcher(eventDispatcher)#
- 参数:
eventDispatcher –
QAbstractEventDispatcher
将主线程的事件分发器设置为
eventDispatcher
。只有在尚未安装事件分发器的情况下才能这样做。也就是说,在实例化QCoreApplication
之前。这个方法会获取对象的所有权。另请参阅
- 静态 setLibraryPaths(arg__1)#
- 参数:
arg__1 – 字符串列表
将使用
QLibrary
加载插件时搜索的目录列表设置为paths
。所有现有路径将被删除,路径列表将包含paths
中给出的路径以及应用程序的路径。在销毁 QCoreApplication 的实例时,将重置库路径到默认状态。
- 静态 setOrganizationDomain(orgDomain)#
- 参数:
orgDomain – 字符串
另请参阅
属性
organizationDomainᅟ
的设置器。- static setOrganizationName(orgName)#
- 参数:
orgName – str
另请参阅
属性
organizationNameᅟ
的设置器。- static setQuitLockEnabled(enabled)#
- 参数:
enabled – bool
另请参阅
属性
quitLockEnabledᅟ
的设置器。- static setSetuidAllowed(allow)#
- 参数:
allow – bool
- shutdown()#
- static startingUp()#
- 返回类型:
bool
如果尚未创建应用程序对象,则返回
true
;否则返回false
。另请参阅
- static testAttribute(attribute)#
- 参数:
attribute –
ApplicationAttribute
- 返回类型:
bool
- static translate(context, key[, disambiguation=None[, n=-1]]])#
- 参数:
context – str
key – str
disambiguation – str
n – int
- 返回类型:
str
通过查询已安装的翻译文件返回
sourceText
的翻译文本。翻译文件将按从最新安装到最早安装的顺序搜索。tr()
提供更方便的功能。context
通常是一个类名(例如,“MyDialog”),而sourceText
则是英文文本或短标识文本。disambiguation
是一个标识字符串,用于在相同上下文中,相同sourceText
被用于不同的角色时进行区分。默认情况下,它是None
。有关上下文、消除歧义和注释的更多信息,请参阅
QTranslator
和tr()
的文档。n
与%n
一起使用,以支持复数形式。有关详细信息,请参阅tr()
。如果没有任何翻译文件包含在
context
中的对sourceText
的翻译,则该函数返回与sourceText
等效的QString
。此函数不是虚拟的。您可以通过继承
QTranslator
来使用替代的翻译技术。另请参阅
tr()
installTranslator()
removeTranslator()
Internationalization and Translations