安装
下载链接
Qt 5.14.2下载
SDK建议的安装路径
SDK的案例中,宏定义默认要求直接安装在C盘
查看建议路径的流程
右键“解决方案”下的项目名称,选择最下面的“属性”
“C/C++” -> “常规” -> “附加包含目录” -> “右侧小箭头” -> “编辑”
Qt Creator环境
查看Qt版本
“工具” -> “选项” -> “Kits”
案例
选择案例项目,关闭打开的帮助文档,点击左栏“编辑”
点击左下角的锤子,构建项目
点击中间的绿色箭头运行:
运行结果展示:
Hello World
Qt Creator中运行
新建项目,命名为’demo1’,我的路径为 D:\QtCreatorProject
双击.ui文件,进入设计模式
在’Filter’处搜索’Label’,拖到中间。双击编辑为’hello,qt’
ctrl+R或点击绿色箭头运行,初次运行会提示保存
运行结果:
文件目录中运行
查看路径,发现多了个build······Debug文件,实际是默认的构造目录
demo1文件存放项目源文件,build······Debug文件存放编译后生成的文件
其中,realease文件是空的,debug文件如下
直接双击可执行文件demo1.exe,弹出警告
方法1(不建议):在Qt的安装路径 C:\Qt\Qt5.14.2\5.14.2\msvc2017_64\bin 找到所需dll文件,复制粘贴到debug,约6个dll需要复制(书中说复制6个后可以运行,但本人复制3个后,出现其他警告)
方法2(一劳永逸):把Qt安装路径的bin路径添加到环境变量,再双击demo1.exe
debug和release的区别
debug:调试版本,依赖的dll很大
release:发布版本
release版本程序的发布
左下角切换为release模式,点击运行
项目文件夹中又多了一个build······Release文件
Release的demo1.exe不能运行
设置应用程序图标
创建.ico图标文件
.ico图标文件复制到项目文件demo1中(本人将其命名为wx.ico)
双击.pro文件,如下位置添加代码
RC_ICONS = wx.ico
单击运行,demo1.exe图标改变
.ico is not in 3.00 format报错
Hello World纯代码实现
新建项目
新建的项目默认只有.pro
默认版本
//demo2.pro
QT += core gui
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
CONFIG += c++11
DEFINES += QT_DEPRECATED_WARNINGS
SOURCES += \
main.cpp
FORMS += \
hellodialog.ui
新建main.cpp
![在这里插入图片描述](https://img-blog.csdnimg.cn/fdd0b8ddfd964a36b6607232fc5bd6c9.
//main.cpp
#include<QApplication>
#include<QDialog>
#include<QLabel>
int main(int argc,char *argv[])
{
QApplication a(argc,argv);
QDialog w;
QLabel label(&w);
label.setText("hello world!");
w.show();
return a.exec();
}
调整尺寸
//main.cpp
#include<QApplication>
#include<QDialog>
#include<QLabel>
int main(int argc,char *argv[])
{
QApplication a(argc,argv);
QDialog w;
w.resize(400,300);
QLabel label(&w);
label.move(120,120);
label.setText("hello world!");
w.show();
return a.exec();
}
geometry
使用.ui
新建.ui文件
)
)
使用label,属性栏geometry的x和y设为120
)
保存后构建工程,在build``````Debug中发现.ui文件生成的ui_hellodialog.h头文件
//main.cpp
#include"ui_hellodialog.h"
int main(int argc,char *argv[])
{
QApplication a(argc,argv);
QDialog w;
Ui::HelloDialog ui;
QLabel label(&w);
ui.setupUi(&w);
w.show();
return a.exec();
}
自定义C++类
)
类继承报错,,已经解决
默认的hellodialog.h
#ifndef HELLODIALOG_H
#define HELLODIALOG_H
class HelloDialog : public QDialog
{
public:
HelloDialog();
};
#endif // HELLODIALOG_H
默认的hellodialog.cpp
#include "hellodialog.h"
HelloDialog::HelloDialog()
{
}
更改后的hellodialog.h
#ifndef HELLODIALOG_H
#define HELLODIALOG_H
#include <QDialog>
class HelloDialog : public QDialog
{
Q_OBJECT
public:
HelloDialog(QWidget *parent = nullptr);
};
#endif // HELLODIALOG_H
更改后的hellodialog.cpp
#include "hellodialog.h"
HelloDialog::HelloDialog(QWidget *parent)
: QDialog(parent)
{
// 在构造函数中设置对话框的内容和布局
}
添加.ui
//hellodialog.h
#ifndef HELLODIALOG_H
#define HELLODIALOG_H
#include <QDialog>
namespace Ui {
class HelloDialog;
}
class HelloDialog : public QDialog
{
Q_OBJECT
public:
HelloDialog(QWidget *parent = nullptr);
~HelloDialog();
private:
Ui::HelloDialog *ui;
};
#endif // HELLODIALOG_H
//hellodialog.cpp
#include "hellodialog.h"
#include"ui_hellodialog.h"
HelloDialog::HelloDialog(QWidget *parent)
: QDialog(parent),
ui(new Ui::HelloDialog)
{
ui->setupUi(this);
}
HelloDialog::~HelloDialog()
{
delete ui;
}
参考书目
Qt Creator快速入门第三版