Qt(简介)

news2024/11/26 21:51:00

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.coloradmin.cn/o/2219607.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

CentOS安装NVIDIA驱动、CUDA以及nvidia-container-toolkit

0.提前准备 0.1.更新yum源&#xff08;以阿里为例&#xff09; 0.1.1 备份当前的yum源 mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup 0.1.2 下载新的CentOS-Base.repo 到/etc/yum.repos.d/ CentOS 5 wget -O /etc/yum.repos.d/CentOS-Base…

【LeetCode每日一题】——523.连续的子数组和

文章目录 一【题目类别】二【题目难度】三【题目编号】四【题目描述】五【题目示例】六【题目提示】七【解题思路】八【时间频度】九【代码实现】十【提交结果】 一【题目类别】 前缀和 二【题目难度】 中等 三【题目编号】 523.连续的子数组和 四【题目描述】 给你一个…

github学生认证(白嫖copilot)-Why are you not on campus?不在校园内

详细申请操作流程可参考如下博文&#xff1a;从0开始的github学生认证并使用copilot教程&#xff08;超详细&#xff01;&#xff09;_copilot学生认证-CSDN博客 在此记录解决“Why are you not on campus?”提示的方法&#xff1a; 当出现这个提示时&#xff0c;说明在选择学…

2024年底蓝奏云最新可用API接口列表 支持优享版 无需手动抓取cookie

Lanzou Pro V1 接口列表 API状态版本路由获取文件与目录✅^1.0.1/v1/getFilesAndDirectories?url{}&page{}获取目录✅^1.0.0/v1/getDirectory?url{}获取文件✅^1.0.1/v1/getFiles?url{}&page{}搜索文件✅^1.0.0/v1/searchFile?url{}&wd{}依Id解析✅^1.0.2/v1/…

从0-1实战演练后台管理系统 (2)从零开始:Pure Admin 环境搭建完全指南,小白也能轻松掌握!

在开始使用Pure Admin之前&#xff0c;我们需要先了解一下Pure Admin是什么? vue-pure-admin (opens new window)是一款开源完全免费且开箱即用的中后台管理系统模版。完全采用 ECMAScript 模块&#xff08;ESM&#xff09;规范来编写和组织代码&#xff0c;使用了最新的 Vue3…

【原创】java+ssm+mysql计算机等级考试网系统设计与实现

个人主页&#xff1a;程序猿小小杨 个人简介&#xff1a;从事开发多年&#xff0c;Java、Php、Python、前端开发均有涉猎 博客内容&#xff1a;Java项目实战、项目演示、技术分享 文末有作者名片&#xff0c;希望和大家一起共同进步&#xff0c;你只管努力&#xff0c;剩下的交…

【ESP32-IDFV5.3.1开发】带SSL的MQTT-demo连接教程

目录 1.VSCODE以及IDF环境配置(略) 2.准备demo 2.1打开VSCODE&#xff0c;主菜单创建示例 找到SSL对应demo&#xff0c;点击创建&#xff0c;并成功创建项目&#xff0c;点击编译&#xff0c;显示编译成功即可以下一步。 确认该demo支持的开发板是你手上的开发板 3.修改demo配…

论文略读:Graph Neural Processes for Spatio-Temporal Extrapolation

2023 KDD 1 背景 时空图数据&#xff0c;无论是交通数据&#xff0c;还是空气质量数据&#xff0c;气候数据。在理想情况下&#xff0c;这些数据应该是细粒度的。 但由于高昂的成本&#xff0c;在某一地区部署和维护足够多的传感器往往是不现实的 ——>因此&#xff0c;许…

Android Studio 的 Gradle 任务列表只显示测试任务

问题现象如下&#xff1a; 问题原因&#xff1a; 这是因为Android Studio 设置中勾选了屏蔽其他gradle任务的选项。 解决方法&#xff1a; File -> Settings -> Experimental 取消勾选Only include test tasks in the Gradle task list generated during Gradle Sync&…

【纯前端excel导出】vue2纯前端导出excel,使用xlsx插件,修改样式、合并单元格

官网&#xff1a; 1、xlsx-js-style xlsx-js-style | xlsx-js-style homepage 2、xlsx SheetJS 中文网 一、使用第三方插件 1、安装 npm install xlsx-js-style 2、引入 import xlsx from xlsx-js-style xlsx插件是基础的导出&#xff0c;不可以修改样式&#xff0c;直接xlsx-s…

Netty通信过程中编解码技术

Netty通信过程中编解码技术 粘包/拆包问题为什么有拆包/粘包MTU最大传输单元和MSS最大分段大小滑动窗口TCP报文如何确保数据包按次序到达且不丢数据Nagle算法 拆包/粘包解决方案 Netty实现自定义通信协议通信协议设计Netty如何实现自定义通信协议 粘包/拆包问题 如何获取一个完…

Discuz | 全站多国语言翻译和繁体本地转换插件 特色与介绍

Discuz全站多国语言翻译和繁体本地转换插件 特色与介绍 特殊&#xff1a;集成了2个开源库1.多国语言翻译 来自&#xff1a;github.com/xnx3/translate特色&#xff1a;无限使用接口 免费使用2个翻译端 带有一级和二级缓存 实现秒翻译 2.简体 繁体&#xff08;台湾&#xff09…

全新子比主题7.9.2开心版 子比主题最新版源码

内容目录 一、详细介绍二、效果展示1.部分代码2.效果图展示 三、学习资料下载 一、详细介绍 wordpress zibll子比主题7.9.2开心版 修复评论弹授权 可做付费下载站 含wordpress搭建视频教程zibll子比主题安装视频教程支付配置视频教程&#xff0c;视频都是语音讲解&#xff0c;…

计算机通信与网络实验笔记

1.LINUX通过版本号判断是否为稳定版本 2.计网基础 &#xff08;CD&#xff09;&#xff0c;默认二层以太网交换机。 &#xff08;10&#xff09;物理层是均分&#xff08;除以&#xff09;&#xff0c;数据链路层及以上是不除的。 3.传输介质&#xff1a; &#xff08;1&…

ssm医院交互系统+vue

系统包含&#xff1a;源码论文 所用技术&#xff1a;SpringBootVueSSMMybatisMysql 免费提供给大家参考或者学习&#xff0c;获取源码请私聊我 需要定制请私聊 目 录 摘要 I Abstract II 1绪论 1 1.1研究背景与意义 1 1.1.1研究背景 1 1.1.2研究意义 1 1.2国内外研究…

网络参考模型总结

物理层&#xff1a; 电信号&#xff0c;有中继器、集线器等设备。 数据链路层&#xff1a;帧&#xff0c;有网桥、交换机等设备&#xff0c;通过mac地址。 网络层&#xff1a;包&#xff0c;有路由器等设备&#xff0c;通过IP地址。 传输层&#xff1a;段&#xff0c;有网…

windows安装cuda与cudnn

目录 cuda安装 前期准备 查看电脑支持的cuda版 方式一 方式二 安装与配置 官网下载安装包 安装 安装检验 环境变量检查&#xff08;可选&#xff09; 卸载 cudnn安装 安装包下载 配置 环境变量配置 安装检验 ​编辑 cuda安装 前期准备 查看电脑支持的cuda版 方…

AtCoder ABC375 A-D题解

省流&#xff1a;史上最难 C 且 C>D。 比赛链接:ABC375 Problem A: Code #include <bits/stdc.h> using namespace std; int main(){int N,ans;string S;cin>>N>>S;for(int i0;i<(N-2);i){if(S[i]# && S[i2]# && S[i1].)ans;}cout…

探索光耦:一文读懂光耦的结构与原理

光耦&#xff0c;全称为光电耦合器&#xff0c;是一种将电信号转换为光信号&#xff0c;再由光信号转换回电信号的器件。它巧妙地穿梭于电信号与光信号之间&#xff0c;实现信号的无缝转换与电气隔离。 光耦的结构与原理 光耦通常由发光二极管&#xff08;LED&#xff09;和光…

Chrome谷歌浏览器加载ActiveX控件之JT2Go控件

背景 JT2Go是一款西门子公司出品的三维图形轻量化预览解决工具&#xff0c;包含精确3D测量、基本3D剖面、PMI显示和改进的选项过滤器等强大的功能。JT2Go控件是一个标准的ActiveX控件&#xff0c;曾经主要在IE浏览器使用&#xff0c;由于微软禁用IE浏览器&#xff0c;导致JT2Go…