小知识,大挑战!本文正在参与“程序员必备小知识”创作活动。
1 相关概念
Qt
是一个跨平台的C++
图形用户界面应用程序框架。它为应用程序开发者提供建立艺术级图形界面所需的所有功能。它是完全面向对象的,很容易扩展,并且允许真正的组件编程。
下载Qt网站:download.qt.io/archive/qt/
Qt的优点:
- 跨平台,几乎支持所有的平台
- 接口简单,容易上手,学习QT框架对学习其他框架有参考义。
- 一定程度上简化了内存回收机制
- 开发效率高,能够快速的构建应用程序。
- 有很好的社区氛围,市场份额在缓慢上升。
- 可以进行嵌入式开发。
2.2 将qt的编码格式改为UTF-8
在工具栏中点击“工具”,然后选择“选项”,然后再弹出的对话框中修改编码格式
2.3 创建Qt图形界面的工程
第一步:选择新建项目,在弹出的对话框中选择第一个“app”,然后选择“Qt Qidget App”
第三步:设置工程名和保存的路径
第四步:设置类名和基类
第五步:接着一路下一步即可
第六步:运行代码
2.4 基础文件介绍
2.4.1 .pro文件
.pro
就是工程文件(project),它是qmake
自动生成的用于生产makefile的配置文件
# 要使用模块,Qt采用模块化编程,所以需要什么模块就添加即可
QT += core gui
# 4.x版本widgets属于gui 但是5.x版本分开了
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
# 编译器选择
CONFIG += c++11
# The following define makes your compiler emit warnings if you use
# any Qt feature that has been marked deprecated (the exact warnings
# depend on your compiler). Please consult the documentation of the
# deprecated API in order to know how to port your code away from it.
DEFINES += QT_DEPRECATED_WARNINGS
# You can also make your code fail to compile if it uses deprecated APIs.
# In order to do so, uncomment the following line.
# You can also select to disable deprecated APIs only up to a certain version of Qt.
#DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0
# 源文件
SOURCES += \
main.cpp \
widget.cpp
# 头文件
HEADERS += \
widget.h
# Default rules for deployment.
qnx: target.path = /tmp/$${TARGET}/bin
else: unix:!android: target.path = /opt/$${TARGET}/bin
!isEmpty(target.path): INSTALLS += target
2.4.2 main.cpp文件
#include "widget.h"
#include <QApplication>
int main(int argc, char *argv[])
{
//应用程序类实例化对象
//管理图形用户界面应用程序的控制流和主要设置。
//是Qt的整个后台管理的命脉它包含主事件循环,在其中来自窗口系统和其它资源的所有事件处理和调度。
//它也处理应用程序的初始化和结束,并且提供对话管理。
//对于任何一个使用Qt的图形用户界面应用程序,
//都正好存在一个QApplication 对象,而不论这个应用程序在同一时间内是不是有0、1、2或更多个窗口。
QApplication a(argc, argv);
//实例化一个窗口对象
Widget w;
//显示当前窗口
w.show();
//主事件循环,窗口不关闭,程序不结束,窗口关闭,程序结束
return a.exec();
}
2.4.3 widget.h文件
#ifndef WIDGET_H
#define WIDGET_H
#include <QWidget>
//自己创建了一个类Widget,
//以公有继承的方式继承了QWidget类,
//Qwidget类就是一个普通窗口类
class Widget : public QWidget
{
//支持信号和槽
Q_OBJECT
public:
//有参构造函数,设置了默认参数
Widget(QWidget *parent = nullptr);
//析构函数
~Widget();
};
#endif // WIDGET_H
2.4.4 widget.cpp文件
#include "widget.h"
//有参构造函数类外实现
Widget::Widget(QWidget *parent)
: QWidget(parent)
{
}
//析构函数
Widget::~Widget()
{
}
2.5 设置窗口属性
2.5.1 Qt助手
- 打开方式1:直接点击Qt Creator中的状态栏中的“帮助”
- 打开方式2(==推荐==):在windows中找到Assistant
2.5.2 学习使用Qt助手
要查找一些信息,一般从类出发,索引查询QWidget, 查询之后会先显示一个目录:
再往下是这个类的基本信息介绍
查询某一个要使用的函数的时候,先从当前类的公有成员函数去找,如果找不到,从公有的槽函数中找,如果还找不到,一般就要去这个类的父类中去找
2.5.3 设置窗口属性
#include "widget.h"
#include <QString>
#include <QDebug>
//有参构造函数类外实现
Widget::Widget(QWidget *parent)
: QWidget(parent)
{
//我们所有关于窗口的代码都要在这个有参构造函数里面去书写
//*****************设置窗口属性*********************
//设置窗口标题
this->setWindowTitle("这是第一个界面");
//获取窗口标题
//Qt中支持STL,但是需要在前面加一个Q,并且第一个字符大写
//例如:QString QVector QList QStack
QString s = this->windowTitle();
//输出标题
qDebug()<< s;
//设置窗口尺寸
//this->resize(800, 600);
//设置窗口的固定大小
this->setFixedSize(800, 600);
}
//析构函数
Widget::~Widget()
{
}