当前位置: 首页 > news >正文

《Qt应用开发》笔记

GUI 简介

GUI (Graphical User Interface)图形用户接口。

printf("%d", 100);
scanf("%d", &x);
cout << x;
cin >> x;

GUI种类:

  • Qt
  • X11
  • Android
  • iOS
  • HarmonyOS

什么是Qt

Qt 是一个跨平台的,使用C++ 开发的图形用户界面库。

开发商 是Qt Company,主要用于做图形用户接口。

Qt 支持的平台:

  • Windows
  • Linux
  • MacOS
  • Android和 iOS(支持的不好)
  • 国产的操作系统。

Qt 框架的工具包包括:Qt界面库、数据库接口、多线程接口、网络接口、文件处理等。

Qt的发展历史:

  • 源于 1991年 Haavard Nord和Eirik Chambe-Eng,创建。早期支持 X11和Windows
  • 1‌994年, Qt Company成立
  • 1995年,TrollTech(奇趣公司)发型了第一个版本。
  • 2008 年被诺基亚收购
  • 2011年 Digia从诺基亚收购 Qt 的商业授权。
  • 2016年Digia 独立并上市。

Qt 的应用领域

  • 军工
  • 航空航天
  • 工业控制
  • 医疗器戒
  • 车载系统
  • ...

Qt 的开发环境:

  • 官方下载地址:https://download.qt.io/

    • 还可以去国内的开源网站下载(如:清华、中国科技大)。
  • Qt 的官方网站: https://www.qt.io/

  • Qt的官方文档:https://doc.qt.io/

Linux 下安装Qt 的方法

Qt5安装文档:
sudo apt update
sudo apt install -y g++
sudo apt install -y make
sudo apt install -y qt5-default
sudo apt install -y qtcreator

安装说明:

  • Qt只是一套C++写的界面库,没有编译器。编译器需要根据不同的应用平台额外安装。

第一个 Qt 程序

1、编写Qt程序

  • Qt使用C++编写,书写程序时,头文件后缀为.h ,实现文件后缀为.cpp
// 1. 创建一个工程文件夹 project_hello
// mkdir project_hello
// cd project_hello
// 2. 编写 hello.cpp ,内容如下:#include <QApplication>
#include <QLabel>int main(int argc, char * argv[]) {// 构建Qt的应用对象,需要传入命令行参数.QApplication app(argc, argv);// 创建一个QLabel(标签对象,用来显示一段文字);QLabel w("Hello Qt!");// 让此对象作为窗口显示w.show();// 进入Qt应用对象的时间循环。return app.exec();
}

2、编译Qt程序

  • 编译工具 qmake、CMake和Qbs(都是用于构建和管理项目的工具)
  • 编译过程
# 1. 创建工程,工程名就是 文件夹名.pro
qmake -project
2. 改写 xxx.pro ,最后一行加入
QT += widgets
# 3. 使用qmake 生成 Makefile
qmake
# 3. 使用 Makefile 生成可执行程序。
make
4. 运行Qt可执行程序
./project_hello

3、运行Qt程序

./project_hello

清理运行环境

# 删除所有的目标和中间文件,包括Makefile和可执行程序。
make distclean# 只删除目标和中间文件,不删除Makefile和可执行程序。
make clean

窗口系统

左上角是(0,0) ,向右是宽,向下是高

widget 的中文含义是窗口小部件。

窗口系统大概图示:

QWidget 类

  • QWidget类是一切可见窗口类的基类。
  • QWidget公有成员函数子类都会继承,在子类中可用。

常用QWidget的成员函数

.size(). 返回窗口的大小
.resize(int w, int h) 设置窗口的大小
.resize(const QSize &) 设置窗口的大小
.move(int x, int y) 移动窗口的位置。
.setWindowTitle("xxx")设置窗口标题。

override关键字

作用:子类在重写父类的虚函数时, override 关键字在父类没有此虚函数时会在编译阶段报错。

示例:

#include <iostream>using namespace std;class A {
public:virtual void showInfo(void) {cout << "A:showInfo" << endl;}
};
class B :public A {// 错写了父类的成员函数名会报错。void show1nfo(void) override {cout << "B:showInfo" << endl;}
};int main()
{B b;b.showInfo();cout << "Hello World!" << endl;return 0;
}

Qt 常用的Widget

  • 按钮: QPushButton
  • 标签:QLabel
  • 行输入框:QLineEdit
  • 多行输入框:QTextEdit
  • 单选按钮:QRadioButton
  • 复选框:QCheckBox
  • 组合框:QComboBox
  • 整数微调数组输入框:QSpinBox

输出调试信息

// 头文件
#include <QDebug>// 使用方法:
qDebug() << "调试信息";
http://www.dtcms.com/a/461318.html

相关文章:

  • 字节面试题:大模型LoRA微调矩阵参数初始化
  • 通过 SSH 远程连接 docker 容器
  • 什么网站可以用手机做兼职赚钱吗威海人才招聘网官网
  • 《穿透式理解C++继承:虚函数表、对象切片与多重继承陷阱》
  • 网站建设属于技术服务吗服装网站设计模板
  • 口碑好的肿瘤电场疗法领先厂家
  • ubuntu
  • 密码学入门:从古典加密到现代网络安全
  • 2003服务器建设网站济南多语言网站建设
  • 技术人力外派公司的数据驱动运营:通过量化管理保障服务品质与客户成功
  • pc 不在 sudoers 文件中。此事将被报告。
  • 遗留系统微服务改造(一):遗留系统改造策略与实战场景分析
  • 微服务基础:远程调用的基本使用详解
  • 实时性、数据覆盖范围和易用性的优质金融数据源API推荐
  • 从零开始:在VSCode中配置现代OpenGL开发环境(MinGW + GLFW + GLAD
  • 消费金融系统-利息核算与财务核算
  • 寻梦数据空间 | 政策篇:构筑数据基座的国家战略与行动蓝图
  • 长春火车站照片十佳工业设计公司
  • Shell 脚本01
  • 掌握外部中断基于GD32F407VE的天空星的配置
  • 销售部网站建设费crm客户管理系统模块
  • PyTorch深度学习(入门笔记)
  • SikuliX实战指南:可视化自动化与测试的核心!
  • 【ShiMetaPi M4-R1】OpenHarmony应用开发01:RArkUI 框架
  • 10.8考研笔记
  • auracast音箱-新标准新体验
  • 网站建设素材网页常州市钟楼区建设局网站
  • 网站付费怎么做海南学校网站建设
  • 前端学习 JavaScript(2)
  • Zookeeper删除提供者服务中的指定IP节点