QCoreApplication类位于模块QtCore内,
QCoreApplication类为Qt提供了一个事件循环,没有UI的应用程序。
非GUI应用程序使用此类来提供其事件循环,这时候程序中应当仅有一个QCoreApplication对象。
QCoreApplication包含主事件循环,其中所有事件从操作系统(例如计时器和网络事件)和处理和调度其他源。它还处理应用程序的初始化和结束清理,以及系统范围和应用程序范围的设置。
就像里面有一个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。
联系客服