《重学C++》12. 《慕影》播放器UI模块开发

12-1 项目的整体UI架构

宏:

如下的Q_OBJECT、Q_PROPERTY等。

其中Q_OBJECT宏的作用是启动Qt元对象系统的一些特性(如支持型号和槽等),它必须放置到类定义的私有区。

QTranslator:翻译组件

QQmlApplicationEngine:Qml引擎

信号和槽:

通信使用,类似于观察者模型


其他太多太杂,后面动手写过、看懂再写。

12-2 项目资源和UI加载的流程

初始调用main函数,主要功能是在1、2两步:

第一步,生成Main类型的app对象MainApp app(argc, argv);

其实最主要是用main函数的int argc, char *argv[]参数对父类进行了初始化,同时设置了应用和图片的路径。

MainApp类的初始化如下:

1
2
3
4
5
6
MainApp::MainApp(int &argc, char **argv)
: QApplication(argc, argv)
, m_strAppRootPath()
, m_strImageRootPath()
{
}

第二步,调用app.Main(argc, argv);

将调用main函数的int argc, char *argv[]参数传入MainApp类的Main函数,这一步里最主要是进行了第a步,初始化:

第a步执行了MainApp::Initialize()函数,对各个部分进行初始化:

第二部中最后的Uninitialize()只是Initialize()函数的反过程,对上面各个部分进行Uninitialize()。

12-3 qml的最基本使用和项目绑定

没看懂。

12-4 修正一个bug和框架调整

有时候Qt存在bug,硬解码失败导致系统崩溃,此时需要设置软件进行解码。

框架调整:设置成单例模式。

12-5 qml属性的基本使用

大致看懂了。

12-6 项目的换肤实现

这一节讲了换肤功能,从添加换肤的按钮到自动加载上次的皮肤都讲了,这一节比较详细。

看懂了大部分细节的地方,例如添加FileDialog等。但是因为对宏观的一些东西还不了解,所以也只能看懂、并不知道怎么回事,代码写不出来。



第十二章作者是在给出的一个框架上进行开发的,然而我对Qt的基本用法等都还没有掌握,很多地方实在是看不懂。

目前去看《Qt5开发及实例》这本书了,挺厚的,估计看不完。如果真的看完了/看的差不多能理解这章内容了,再回来补上面的内容。