创建项目
进入ui界面拖一个按钮
在头文件中添加函数说明
#ifndef HELLO_H
#define HELLO_H#include <QMainWindow>QT_BEGIN_NAMESPACE
namespace Ui {
class Hello;
}
QT_END_NAMESPACEclass Hello : public QMainWindow
{Q_OBJECTpublic:Hello(QWidget *parent = nullptr);~Hello();private slots:void showDialog();private:Ui::Hello *ui;
};
#endif // HELLO_H
holle.cpp
#include "hello.h"
#include "ui_hello.h"#include <QMessageBox>Hello::Hello(QWidget *parent): QMainWindow(parent), ui(new Ui::Hello)
{ui->setupUi(this);//信号与槽进行连接connect(ui->pushButton,&QPushButton::clicked,this,&Hello::showDialog);
}Hello::~Hello()
{delete ui;
}//槽函数
void Hello::showDialog()
{QMessageBox::information(this,QString::fromLocal8Bit("hello"),QString::fromLocal8Bit("hello"));
}
代码详解
#include <QApplication>int main(int argc, char *argv[])
{QApplication a(argc, argv); // 每个qt窗口应用程序都需要有一个QApplication对象HelloCosBrowser w;w.show();return a.exec(); // exec 让程序进入事件循环,作用:接收来自用户的事件,如鼠标事件,键盘事件
}
#include <QWidget>QT_BEGIN_NAMESPACE
namespace Ui { class hello; }
QT_END_NAMESPACEclass hello : public QWidget // QWidget是所有应用程序窗口类的基类
{Q_OBJECT // 支持Qt的特性,如信号槽、对象树、元对象等public:hello(QWidget *parent = nullptr); //parent == nullptr时,该窗口为独立窗口,可在任务栏看到;当parent != nullptr,该窗口作为主窗口的控件~hello();private slots:void showDialog();private:Ui::hello *ui;
};
#endif // HELLOCOSBROWSER_H
文件列表
文件名称 | 描述 |
---|---|
pro文件 | 该文件是Qt的项目文件,qmake工具可根据此文件生成makefile |
pro.user文件 | 该文件包含和用户相关的项目信息(不需要关心) |
.ui文件 | Qt的设计师界面文件 |
.cpp文件 | C++源文件 |
.h文件 | C++头文件 |
moc编译器的由来
- 新的信号槽idea如何实现
Qt编译过程
moc的运行方式
- moc编译工具由Qt框架自动调用
- 扫描C++头文件,查找Q_OBJECT宏
使用方法
- 继承QObject对象和其子类
- 包含Q_OBJECT宏
为窗口加上图标
- 准备图标文件
- 调用setWindowIcon方法
{ui->setupUi(this);connect(ui->pushButton, &QPushButton::clicked, this, &HelloCosBrowser::showDialog);setStyleSheet("QWidget{font-size: 24pt;}"); //qss对标cssQIcon icon;icon.addFile("F:/4-2/images/logo.ico");setWindowIcon(icon);
}
为应用程序加上图标
- 准备图标文件,格式为ico
- 修改pro工程文件 RC_ICONS=logo.ico
- 当指定了应用程序图标后,不需额外指定窗口图标
发布应用的三种方式
手动部署
拷贝动态库到exe目录下
打开文件的debug目录
按提示从qt目录复制dll
windeployqt部署
- 查找windeployqt.exe程序
- 加入环境变量
- 执行命令windeployqt.exe exe所在目录
使用Creator部署
- 项目导航窗口-运行-部署-添加自定义部署
- 输入windeployqt.exe程序及对应的命令行参数
- 执行部署命令