Qt(简介)

server/2024/10/21 16:53:53/

1. Qt简介

Qt是一个基于C++的图形用户界面(GUI)框架,可以开发可视化人机交互程序,但是这并不是Qt的全部。Qt除了可以绘制漂亮的界面外,还包含很多其他的功能:多线程、数据库、图像处理、音视频处理、网络通信、文件IO......

Qt开发的产品可以分为两类:

  • 纯软开发

.......

  • 嵌入式开发

Linux 也是嵌入式的主力军,广泛应用于消费类电子、工业控制、军工电子、电信/网络/通讯、航空航天、汽车电子、医疗设备、仪器仪表等相关行业。

2. Qt优势(掌握)

跨平台:一次编程,到处编译。

面向对象开发

丰富的API和开发文档

开源

......

3. 环境安装与配置

统一要求使用Qt Creator,在开发之前因为先试用Qt Creator开发了C++,当时把编码设置为了System,而Qt不支持System编码,需要在编程之前先把Qt Creator的编码重新重置为UTF-8。

4. 新建项目

新建一个完整的Qt项目的操作步骤如下:

1. 点击

2. 在弹出的窗口中按照下图所示进行操作。

3. 设置项目名称和路径,不能包含中文字符

4. 直接下一步。

5. 在弹出的窗口中,选择基类为QDialog。

6. 项目管理界面直接点击完成。

7. 项目创建完成后,可以看到文件比C++多。

5. 项目结构(掌握)

在Qt Creator中显示五个文件,如果在Windows打开代码所在的目录(工作目录),可以看到可以有六个文件。

  • .pro 项目配置文件

用于配置项目参数,在Windows中双击此文件可导入项目。

#-------------------------------------------------
#
# Project created by QtCreator 2024-10-12T09:31:09
#
#-------------------------------------------------# 添加core模块和GUI模块
QT       += core gui# 如果当前Qt的主版本号大于4,则添加widgets模块
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets# 生成exe可执行文件的名称
TARGET = HelloWorld0928
# 当前项目以Qt应用程序的方式构建
TEMPLATE = app# 项目中包含的源文件
SOURCES += main.cpp\
        dialog.cpp# 项目中包含的头文件
HEADERS  += dialog.h# 项目中包含的界面文件
FORMS    += dialog.ui
  • .user 用户文件

此文件是Qt项目基于当前运行环境生成的用户文件,每个项目、每台计算机的此文件都不通用,在传输项目之间建议删除此文件,如果拿到他人的项目包含此文件,需要在导入项目之前先删除。

  • main.cpp 主文件

内部包含主函数——程序执行的入口,此文件通常不需要改动。

#include "dialog.h"
#include <QApplication> // Qt内置类都是Q开头的int main(int argc, char *argv[])
{
    //QApplication类管理GUI应用程序的控制流程和主要设置。
    QApplication a(argc, argv);
    // Dialog类是项目自动编写的类型
    // 此类包含2-3个文件
    // 1. dialog.h 头文件
    // 2. dialog.cpp 源文件
    // 3. diaoog.ui 界面文件(非必须)
    // 创建了一个对话框窗口的栈内存对象
    Dialog w;
    // 展示窗口
    w.show();    return a.exec(); // 进入主事件循环
}
  • dialog.h

Dialog类的声明。

  • dialog.cpp

Dialog类的定义。

  • dialog.ui

Dialog类的样式,此文件非必须。

6. 帮助手册(重点)

在Qt中查阅帮助手册的能力非常重要,有三种查阅的方式:

  • Windows中搜索Assistant程序,这是一款独立的查阅文档的应用程序。比较适合双屏用户。

  • 在Qt Creator中点击,可以直接打开一个Qt Creator内置的Assistant程序。

  • 编辑代码时,光标停留在要查询的内容上,双击键盘F1,可以自动跳转到当前内容对应的文档。

查阅文档需要注意下图中红色标记区域。

7. 调试信息类QDebug(掌握)

在Qt中输出调试信息不再使用cout,而是替换为QDebug,因为Qt信息输出是区分前后台的,前台指的是用户可视界面,后台是开发者可见,但用户不可见的区域。

传统的C和C++输出的内容是不区分前后台的。

QDebug可以把调试信息在Qt后台输出,避免用户可见。

新建一个项目,取消Dialog类的界面文件(这样的项目更简单),只需要更改第4节中新建项目的第5步,如下:

dialog.h

#ifndef DIALOG_H
#define DIALOG_H#include <QDialog>
#include <QDebug> // 调试信息类class Dialog : public QDialog
{
    Q_OBJECT // 别删public:
    Dialog(QWidget *parent = 0); // 构造函数
    ~Dialog(); // 析构函数
};#endif // DIALOG_H

dialog.cpp

#include "dialog.h"// 构造函数定义
Dialog::Dialog(QWidget *parent): QDialog(parent) // 透传构造
{
    // 连续输出的过程中,中间自动加空格
    // 每句qDebug()最后都自动添加换行
    // 【Qt命名规范】
    // 变量和函数使用小驼峰命名法:
    // 第一个单词全小写,后续每个单词的首字母大写
    qDebug() << "构造函数" << "调用了";
}// 析构函数定义
Dialog::~Dialog()
{
    qDebug() << "析构函数";
}

http://www.ppmy.cn/server/133672.html

相关文章

2024CSP-J模拟赛9————S12678

一&#xff0c;赛中得分 T1100T2100T350T440总分290 二&#xff0c;赛中概括 T1T2较快过&#xff0c;T3T4骗了90分&#xff08;意料之中&#xff0c;这么好骗分&#xff01;&#xff01;&#xff01;&#xff09;。 三&#xff0c;题目解析 涂格子(paint) 问题描述 现在有…

Redis设计与实现 学习笔记 第八章 对象

在前面的章节中&#xff0c;我们陆续介绍了Redis用到的所有主要数据结构。Redis并没有直接使用这些数据结构来实现键值对数据库&#xff0c;而是基于这些数据结构创建了一个对象系统&#xff0c;这个系统包含字符串对象、列表对象、哈希对象、集合对象、有序集合对象五种&#…

在日本生活压力大吗?

在日本生活的压力大小是一个相对主观的问题&#xff0c;因为它取决于个人的生活方式、价值观、经济状况、工作性质以及适应能力等多个因素。然而&#xff0c;从一些普遍的角度来看&#xff0c;我们可以对日本的生活压力进行一些概括性的分析。 首先&#xff0c;日本是一个高度发…

IDEA下载安装

文章目录 1、下载安装包2、安装IDEA3、全局配置4、安装插件5、关闭合并菜单栏 1、下载安装包 IDEA官网下载最新IDEA。 上面的ULtimate是旗舰版&#xff0c;试用30天&#xff0c;之后是需要收费的&#xff0c;下面黑色区域的Community是社区版&#xff0c;功能不如旗舰版丰富&a…

6个最佳核心应用仪表盘构建工具

核心应用仪表盘&#xff08;Core App Dashboard&#xff09;的概念或许你不太熟悉&#xff0c;但仪表盘你一定不陌生。 从汽车的仪表盘显示速度和油量&#xff0c;到运动手环仪表盘追踪步数和心率&#xff0c;再到金融投资仪表盘监控股票和基金的实时行情&#xff0c;它们通过…

Eclipse——Java开发详解

Eclipse 1、配置JDK2、设置编译版本2.1、全局编译版本2.2、项目编译版本2.3、Web项目编译版本 3、设置工作目录4、创建Java项目5、配置Tomcat6、创建Web项目7、配置Maven8、创建Maven项目8.1、普通Maven项目8.2、Maven Web项目 9、创建SpringBoot项目10、设置字体11、设置代码提…

通过SSH远端免密登录执行脚本,修改最新5分钟生成文件权限

通过SSH远端免密登录执行脚本&#xff0c;修改最新5分钟生成文件权限 一、准备工作二、脚本内容三、使用脚本四、注意事项 在日常的系统管理中&#xff0c;经常需要对远程服务器上的文件进行操作。本文将介绍如何通过SSH远端免密登录&#xff0c;执行一个脚本来查找某目录下最新…

【深度学习】菜品目标检测我为什么选择Yolov10而不是PaddleDetection

在菜品目标检测项目中&#xff0c;选择YOLOv10而非PaddleDetection&#xff0c;主要基于速度、实用性及检测精度之间的平衡。 YOLOv10的优势 YOLOv10作为最新版本&#xff0c;在速度和部署便捷性方面进一步优化&#xff0c;尤其适用于实时菜品检测场景。在餐厅应用中&#xff0…