打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
Qt5.15.2源码解析之qcoreapplication类Part1

QCoreApplication类位于模块QtCore内,

QCoreApplication类为Qt提供了一个事件循环,没有UI的应用程序。

非GUI应用程序使用此类来提供其事件循环,这时候程序中应当仅有一个QCoreApplication对象。

QCoreApplication包含主事件循环,其中所有事件从操作系统(例如计时器和网络事件)和处理和调度其他源。它还处理应用程序的初始化和结束清理,以及系统范围和应用程序范围的设置。

事件循环和事件处理:

事件循环以调用exec()开始,调用processEvents()来维持应用程序的响应。

就像里面有一个while(1)的循环,然后循环里面会有一个处理函数,每当调用处理函数的时候,程序就会进入用户程序中,最后处理函数结束,或continue或break。

通常,用户程序会在main函数里首先创建一个QCoreApplicatio对象。对象调用exec()直到事件循环退出; 例如,当调用quit()时。

QCoreApplication还提供了几个静态便利功能。这个QCoreApplication对象可从instance()获得。

用户自己定义的事件可以使用sendEvent()发送或使用postEvent()发布到事件队列。

挂起的事件可以使用removePostedEvents()删除或使用sendPostedEvents()丢弃。

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

应用程序和库路径

应用程序具有applicationDirPath()和applicationFilePath()。可以检索库路径(请参见QLibrary,使用libraryPaths()并由setLibraryPaths)addLibraryPath()和removeLibraryPath。

国际化和翻译

使用installTranslator()和removeTranslator(。应用字符串可以使用translate()进行翻译。QObject::tr()和QObject::trUtf8()函数是根据translate()。

访问命令行参数

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

QCoreApplication删除了选项\c-qmljsdebugger=“…”。它解析参数,然后删除此选项及其参数。要获得更高级的命令行选项处理,使用QCommandLineParser。

区域设置

在Unix/Linux上,Qt配置为使用系统区域设置,但是在使用POSIX函数时,这可能会导致冲突,例如:当在数据类型如float和字符串,因为不同地区的符号可能不同。

解决办法是:调用POSIX函数setlocale(LC_NUMERIC,“c”)

在初始化QApplication、QGuiApplication或QCoreApplication之后

将用于数字格式设置的区域设置重置为“C”-区域设置。

静态QCoreApplication*QCoreApplication::instance()返回指向应用程序QCoreApplication(或QGuiApplication/QApplication)实例。如果未分配实例,则返回nullptr。

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
Qt经典—事件与事件循环
<ZT>Qt中的多线程二 - yanboo's blog - 歪酷
03、QT信号与槽机制与事件机制的区别
PyQt中主函数app=QApplication(sys.argv) sys.exit(app.exec
Qt中如何退出程序代码
QApplication的用法
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服