下载地址:http://www.qt.io/download-open-source/
一.QT5 界面设计区
1.简单ui设计属性说明
标签(输出列表):
边框:
输入列表:
按键:
通过以上几类控件,基本能完成所有事情,通过查看属性,对照程序能更好理解整个运行的过程。
2.转到槽
信息槽可以比喻成传递信息的通道
程序格式:
QPushButton button("Quit");
QObject::connect(&button, &QPushButton::clicked, &QApplication::quit);
按键单击触发了应用程序的退出。
在desiger中的通道选择(主要定义信息传递的条件和方式):
按键:
标签:
输入:
自定义信号槽:http://www.qter.org/forum.php?mod=viewthread&tid=623&extra=page%3D1
#include <QObject>
// newspaper.h
class Newspaper : public QObject
{
Q_OBJECT
public:
Newspaper(const QString & name) :
m_name(name)
{
}
void send()
{
emit newPaper(m_name);
}
signals:
void newPaper(const QString &name);
private:
QString m_name;
};
// main.cpp
#include <QCoreApplication>
#include "newspaper.h"
#include "reader.h"
int main(int argc, char *argv[])
{
QCoreApplication app(argc, argv);
Newspaper newspaper("Newspaper A");
Reader reader;
QObject::connect(&newspaper, &Newspaper::newPaper,
&reader, &Reader::receiveNewspaper);
newspaper.send();
return app.exec();
}
设计器的有一排特别简单好用的工具:
底下动作编辑区和信号槽编辑区
二.QT5 程序编辑区
1.pro文件
详情参照https://blog.csdn.net/liang19890820/article/details/51774724
2.cpp文件
1、QMainWindow 是 MainWindow 的父类
2、QWidget *parent 中的 parent 值赋值给 QMainWindow(parent) 中的 parent,这其实是用到C++的语法,执行MainWindow的构造函数前先执行父类QMainWindow的构造函数
3、写这句 QMainWindow(parent) 的原因是 new 一个 MainWindow 对象可以指定父对象,从而使用 Qt 提供的内存自动回收机制
4、QWidget *parent 中为 QWidget 的原因是 QWidget 为窗口类型的类的基类,对于其他父类(比如非QMainWindow,即非窗口类),parent类型是 QObject
5、ui(new Ui::MainWindow)的作用相当于 ui = new Ui::MainWindow,即对对象 ui 进行实例化