《重学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 | MainApp::MainApp(int &argc, char **argv) |
第二步,调用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开发及实例》这本书了,挺厚的,估计看不完。如果真的看完了/看的差不多能理解这章内容了,再回来补上面的内容。