Qt编写大型应用程序的一般步骤
Posted 顾文繁
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Qt编写大型应用程序的一般步骤相关的知识,希望对你有一定的参考价值。
在开发桌面应用程序中,必须要确定开发代码框架,如果没有合理的代码框架,不知道何时加载相应的资源,所以本篇文章以QML为例介绍QT GUI程序一般步骤。
QML介绍
QML是为了降低GUI组件或者页面布局的一种快捷方法,类似于Java Web开发中,前后端分离,后端程序员专注于业务逻辑开发,前端人员关注页面。该方式降低了程序之间的耦合程序,使得开发效率得以提升。
QML引擎
我们应该明白QML引擎是全局唯一的,那么改组件就应该使用单例模式。编写单例模式生成一个带有QML引擎的QObject指针
/**
*返回一个带有QML引擎的QObject指针
* @brief MainApp::GetInstance
* @return
*/
QObject* MainApp::GetInstance(QQmlEngine* /*engine*/, QJSEngine* /*scriptEngine*/){
QObject* pObj = GetMainApp();
QQmlEngine::setObjectOwnership(pObj, QQmlEngine::CppOwnership);
return pObj;
}
初始化
下面的函数将介绍初始化各种步骤
//1
bool Initialize();
bool Uninitialize();
//2 初始化各种路径
bool InitializePath();
bool UninitializePath();
//3 配置文件
bool InitializeCfg();
bool UninitializeCfg();
//4 初始化国际化
bool InitializeTranslator();
bool UninitializeTranslator();
//5 初始化qml
bool InitializeQmlEngine();
bool UninitializeQmlEngine();
//6 初始化UI
bool InitializeUI(QQmlApplicationEngine* pQmlEngine);
bool UninitializeUI(QQmlApplicationEngine* pQmlEngine);
//7 初始化其他
bool InitializeOthers();
bool UninitializeOthers();
在Initialize()函数中,将调用2~7函数进行各种组件的初始化,并且设置应用程序的图标、应用名称等信息。
// 设置应用程序属性
setApplicationName(QStringLiteral(APP_NAME));
setWindowIcon(QIcon(QStringLiteral(APP_ICON_PATH)));
setApplicationDisplayName(tr(APP_DISPLAYNAME));
在UI初始化中,设置应用程序的字体,注册其他组件等操作,并且将主QML文件进行加载。
最后不论是初始化错误还是关闭应用程序,不能忘记进行反初始化,将涉及到的资源进行内存释放。
以上是关于Qt编写大型应用程序的一般步骤的主要内容,如果未能解决你的问题,请参考以下文章