安装
下载链接
Qt Creator环境
查看Qt版本
“工具” -> “选项” -> “Kits”
案例项目
选择案例项目,关闭打开的帮助文档
在“项目”模式的“Build & Run”中选择一个Qt
点击左栏进入“编辑”模式
再点击左下角的“锤子”,构建项目;或者直接点击“绿色箭头”运行
运行结果:
Hello World
Qt Creator中运行
新建Qt Widget项目,命名为“demo1”
Class name设置为MyWidget
新建后的项目如下:
双击.ui文件,进入设计模式
拖用Push Button,双击编辑为’Hello,QT!’
点击“绿色箭头”运行,初次运行会提示保存
运行结果:
在文件目录中运行
查看路径,发现多了个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纯代码实现
新建项目
选择空的qmake项目
默认版本
//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();
}
使用.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;
}