1. QT性能:比MFC弱,比C#、Java强
Qt 是一个跨平台的C++应用程序框架,支持Windows、Linux、Mac OS X、Android、iOS、WindowsPhone、嵌入式系统等。
本质上,Qt 是一个C++类库。在引入 QML 以前,所有的开发都是基于 C++ 的,但到了 Qt 5,QML 和 Qt Quick 成为了 Qt 的核心之一,导致很多读者在犹豫是否还需要学习 C++。
使用 QML 开发界面主要有以下几个优点:
QML 非常灵活,可以做出非常炫酷的效果,例如QQ、360、迅雷等都不在话下。
QML 是标记语言,见名知意,非常容易编写和阅读,大大提高了开发和维护效率。
QML 界面简洁大气,有很多动画,适合移动端。
不同平台下的 QML 使用相同的渲染机制,界面效果一致,不会随操作系统的不同而变化。
在 Qt 中,我们将窗口和控件统称为部件(Widget)。窗口是指程序的整体界面,可以包含标题栏、菜单栏、工具栏、关闭按钮、最小化按钮、最大化按钮等;控件是指按钮、复选框、文本框、表格、进度条等这些组成程序的基本元素。一个程序可以有多个窗口,一个窗口也可以有多个控件。
2. QMainWindow、QWidget、QDialog 三个类就是用来创建窗口的,可以直接使用也可以继承后再使用。
1. QMainWindow 窗口可以包含菜单栏、工具栏、状态栏、标题栏等,是最常见的窗口形式,可以作为GUI程序的主窗口。
2. QDialog 是对话框窗口的基类。对话框主要用来执行短期任务,或与用户进行互动,它可以是模态的也可以是非模态的,QDialog 没有菜单栏、工具栏、状态栏等。
3. 如果是主窗口,就使用 QMainWindow;如果是对话框,就是用 QDialog;如果不确定,或有可能作为顶级窗口,也有可能嵌入到其他窗口中,那么使用 QWidget。
创建界面方式:
1. 纯c++代码
a) Qt Widgets Application(创建界面?(纯代码或带ui(xml + c++)))
b) Qt Console Application
2. QML
a) Qt Quick Application
b) Qt Quick Controls Application
c) Qt Canvas 3D Application
Qt Widgets Application和Qt ConsoleApplication工程将会使用C++代码,Console 用来创建控制台程序,Widgets 用来创建GUI程序。
Qt Quick Application、Qt QuickControls Application和Qt Canvas 3D Application工程将会使用 QML 代码,QuickControl 主要比 Quick 多一些控件,Canvas 3D 用来创建3D动画。
3. 信号和槽(signals/slots)
QObject::connect(...)
声明槽函数:public slots: void dosth();
QPushButton clicked:
connect(m_btnSearch, &QPushButton::clicked, this, &CPersonMng::on_pushButton_clicked);
Moc
全称是"Meta-Object Compiler",也就是”元对象编译器“。
moc 就是一个源代码分析程序,它会读取C++源文件,如果发现在一个头文件中包含了宏 Q_OBJECT,则会生成另外一个C++源文件。这个源文件中包含了 Q_OBJECT 宏的实现代码。这个新文件的名字将由源文件名加上moc_前缀构成,读者可以在 Debug 或 Release 目录中找到。
4. 资源Resource
添加
修改前缀
引用
QIco ico(“:/myimages/images/ok.png”)
5. 布局
布局管理器主要包括QBoxLayout基本布局管理器、QGridLayout栅格布局管理器和QFormLayout窗体布局管理器,而基本布局管理器又分为QHBoxLayout水平布局管理器和QVBoxLayout垂直布局管理器。
1. QBoxLayout:
a) Vertical Layout(垂直布局管理器)
容器内元素垂直排列,元素宽相同与容器内宽一致
b) Horizen Layout(水平布局管理器)
容器内元素水平均匀排列
2. QGridLayout:
3. QFormLayout: