Qt学习基础

article/2025/10/25 1:03:19

1. Qt是什么?

Qt是一个基于C++语言的图形用户界面(GUI)开发框架,Qt不仅仅可以进行GUI开发,除此之外Qt也能进行很多其它功能开发,包括但不限于多线程、数据库、图像处理、音视频处理、网络通信与文件IO等。

Qt广泛地应用于嵌入式开发和传统软件开发中:

(1) 传统软件客户端

(2)上位机:远程控制嵌入式下位机

(3)嵌入式产品控制程序

2. Qt的优势

Qt与各种竞品相比,主要的优势是跨平台特性

跨平台特性指的是:一次编程,到处编译

除此之外,Qt也拥有一些其它竞品的共同优势特点:

● 面向对象开发

● 丰富的API,并配以大量的开发文档

● 易用且开源的开发环境

3. 开发环境

学习QT过程中主要用到了以下软件

主界面是这样的

4. 工作目录与构建目录

4.1工作目录

工作目录:即新建项目时配置的路径,存放源代码文件的目录。

4.2构建目录

构建目录:当程序构建时,会在此目录下生成编译的文件。

需要注意的是,默认情况下开启影子构建,此时工作目录与构建目录分离。如果取消此模式,构建目录会合并到工作目录,优势是可以提升编译的稳定性,劣势是文件分类不明确。

5. 查看帮助文档

Qt自带了大量的帮助文档,可以通过以下几种方式打开:

方法一:

直接打开Assistant程序,可以在一个独立窗口中打开帮助文档。

方法二:

在Qt Creator中点击左栏的“帮助”,可以打开一个内置的帮助文档。

方法三:

在Qt Creator中,光标定位到要查询的内容,双击键盘F1,可以直接通过内置的帮助文档查询到对应的内容。

每个类在文档中需要注意下面的部分。

6. 解析默认文件代码

6.1 项目配置文件

项目名称.pro

#-------------------------------------------------
#
# Project created by QtCreator 2023-01-30T21:19:35
#
#-------------------------------------------------# 当前项目需要添加的模块
QT       += core gui# 当Qt主版本号大于4时,添加widgets模块
greaterThan(QT_MAJOR_VERSION, 4): QT += widgetsTARGET = HelloQt # 可执行文件名称
TEMPLATE = app # 当前项目的构建模式# 当前项目包含的源文件
SOURCES += main.cpp\dialog.cpp# 当前项目包含的头文件
HEADERS  += dialog.h# 当前项目包含的界面文件
FORMS    += dialog.ui

此文件除了添加的模块外,通常不需要程序员手动维护。

6.2 Dialog类文件

默认的Qt项目会创建一个Dialog类,此类包含三个文件:

dialog.h

#ifndef DIALOG_H
#define DIALOG_H#include <QDialog>namespace Ui {
class Dialog;
}/*** @brief The Dialog class* 自定义类继承了源代码的QDialog类*/
class Dialog : public QDialog
{Q_OBJECTpublic:explicit Dialog(QWidget *parent = 0); // 构造函数~Dialog(); // 析构函数private:Ui::Dialog *ui; // 成员变量
};#endif // DIALOG_H

dialog.cpp

#include "dialog.h"
#include "ui_dialog.h"/*** 构造函数*/
Dialog::Dialog(QWidget *parent) :QDialog(parent), // 透传构造ui(new Ui::Dialog) // 构造初始化列表
{ui->setupUi(this);
}/*** 析构函数*/
Dialog::~Dialog()
{delete ui;
}

dialog.ui

6.3 主文件

main.cpp

#include "dialog.h"
#include <QApplication>/*** @brief main 程序的入口,主函数* @return*/
int main(int argc, char *argv[])
{// 创建一个应用程序管理类对象QApplication a(argc, argv);// 创建了一个Dialog类对象wDialog w;// 显示对象w在UI上w.show();return a.exec(); // 进入循环状态,程序持续运行
}

7. 创建一个QT 项目(调试函数运用)

7.1创建项目

  1. 选择模板

在确定模板以后

修改第三项详情

其它步骤不变,这样的项目没有了界面文件,代码更加简洁。

7.2调试函数

Qt中调试信息是不能在界面上被用户看到的,因此需要使用QDebug类将调试信息在后台输出,这样的信息用户无法看到。

dialog.h

#ifndef DIALOG_H
#define DIALOG_H#include <QDialog>
// 引入头文件
#include <QDebug>class Dialog : public QDialog
{Q_OBJECTpublic:Dialog(QWidget *parent = 0);~Dialog();
};#endif // DIALOG_H

dialog.cpp

#include "dialog.h"Dialog::Dialog(QWidget *parent): QDialog(parent)
{// 注意Qt中命名规范与C++有不同// 函数与变量使用 驼峰命名法(小驼峰命名法)://第一个单词全小写,后面的单词首字母大写qDebug() << "构造函数"; // 结束后会自动换行
}Dialog::~Dialog()
{qDebug() << "析构函数";
}


http://chatgpt.dhexx.cn/article/Wovp2v09.shtml

相关文章

Qt学习心得体会

Qt是一种跨平台C图形界面程序开发框架&#xff0c;在社会中各种行业都有着举足轻重的地位。 Qt为了实现对象与对象之间的通信&#xff0c;提出了信号与槽的概念。当一个对象发生改变会发送一个信号通知另一个对象执行一个函数&#xff0c;这个函数称为槽&#xff0c;信号只需要…

QT 学习笔记(二)

文章目录 一、标准信号和槽1. 准备工作1.1 main.c1.2 widget.cpp 2. 添加按钮2.1 widget.h2.2 widget.cpp2.3 运行结果 3. 信号和槽&#xff08;重点&#xff09;3.1 信号3.2 自定义槽3.3 widget.h3.4 widget.cpp3.5 运行结果 二、两个独立窗口1. 添加新窗口2. 自定义信号3. 窗…

Qt学习 - 总

Qt学习 学习中的错误常用快捷键杂项布局信号与槽数据库相关QSS选择器 {property:value}Qt样式表设置函数 setStyleSheet()QSS文本属性 事件QMouseEvent&#xff1a;鼠标事件键盘事件QWheelEvent&#xff1a;滚轮事件QCloseEvent&#xff1a;关闭事件QTimerEvent&#xff1a;超时…

Qt日常学习

2022/07/28 使用Visual Studio2019 搭配 Qt5.14&#xff0c;可视化Qt界面使用QtDesigner。 若只使用代码来做界面太麻烦&#xff0c;效率低&#xff1b;只使用可视化界面进行拖拽效率高但无法实现全部功能。使用代码可视化结合的方式能够实现绝大部分功能。 练习1&#xff1…

QT入门学习(一):什么是QT

QT 是什么&#xff1f; QT是一个跨平台C图形用户界面应用程序开发框架。它不仅可以开发GUI程序&#xff0c;也可以开发非GUI程序。我们通常使用QT开发GUI程序。 它可以开发Windows、Linux、Mac平台的应用程序。也可以开发移动端应用程序以及嵌入式程序。 QT 模块 QT 有模块…

一位大佬对于 Qt 学习的最全总结(三万字干货)

击上方“C语言与CPP编程”&#xff0c;选择“关注/置顶/星标公众号” 干货福利&#xff0c;第一时间送达&#xff01; 分享一位大佬 Github 上关于 Qt 学习的总结。作者无私分享了一百多个自定义控件以及几本 Qt 的书籍&#xff08;C Qt&#xff09;&#xff0c;特此引用这个大…

QT学习笔记(一)——QT基础

QT学习笔记&#xff08;一&#xff09;——QT基础 文章目录 QT学习笔记&#xff08;一&#xff09;——QT基础前言一、QT是什么&#xff1f;二、基础内容1.pro文件规则及含义2. Widget头文件3. QT坐标系的定义4. QApplication应用程序类5.按钮&#xff1a;QPushButton6. 信号和…

Qt初学者的一些学习方法、参考资料

1&#xff0c;简介 最近有一些朋友加我&#xff0c;询问Qt入门学习的方法、资料 我基本都一一作答&#xff0c;根据情况给出了一些参考意见 感觉很多新手开始学习时很迷茫&#xff0c;不知道学习哪些方面、看什么资料 这里干脆写一篇文章&#xff0c;把自己的学习过程给大家介…

Qt学习之C++基础

前言 用了大概2个月的时间&#xff0c;学了Qt&#xff0c;然后开发一个小项目&#xff0c;总的来说&#xff0c;在主机GUI程序中&#xff0c;相比Java的Swing和JavaFX&#xff0c;个人感觉Qt的界面设计更加简便一点&#xff0c;灵活性更高一些&#xff0c;然后下边就主要简述一…

Qt学习之Qt基础入门(中)

1. 前言 上一篇博客&#xff0c;总结了Qt的一些基础用法&#xff0c;这篇博客继续跟视频学习Qt的常用方法 Qt入门系列&#xff1a; Qt学习之C基础 Qt学习之Qt安装 Qt学习之Qt基础入门(上) Qt学习之Qt基础入门(中) Qt学习之Qt基础入门(下) 本文原创&#xff0c;创作不易&…

Qt学习之Qt基础入门(上)

1. 前言 上一篇博客&#xff0c;简单的介绍了一下C的面向对象编程&#xff0c;这篇博客就主要是用来入门Qt&#xff0c;废话不多说&#xff0c;开干&#xff01; Qt入门系列&#xff1a; Qt学习之C基础 Qt学习之Qt安装 Qt学习之Qt基础入门(上) Qt学习之Qt基础入门(中) Qt学习…

qt基础入门教程

1、t的介绍、优点、成功案例 5.8.0 Qt是一个跨平台的C图形用户界面应用程序框架。它为应用程序开发者提供建立艺术级图形界面所需的所有功能。爸是完全面向对象的&#xff0c;很容易扩展&#xff0c;并且允许真正的组件编程。 推荐安装 wps linux 桌面环境 虚拟机软件 屏幕共…

Qt入门教程100篇(已完结)

&#x1f608;「CSDN主页」&#xff1a;传送门 &#x1f608;「Bilibil首页」&#xff1a;传送门 &#x1f608;「CSDN学院」&#xff1a;传送门 &#x1f608;「本文的内容」&#xff1a;Qt基础教程 &#x1f608;「动动你的小手」&#xff1a;点赞&#x1f44d;收藏⭐️评论&…

QT入门看这一篇就够了——超详细讲解(40000多字详细讲解,涵盖qt大量知识)

目录 一、Qt概述 1.1 什么是Qt 1.2 Qt的发展史 1.3 Qt的优势 1.4 Qt版本 1.5 成功案例 二、创建Qt项目 2.1 使用向导创建 2.2 一个最简单的Qt应用程序 2.2.1 main函数中 2.2.2 类头文件 2.3 .pro文件 2.4 命名规范 2.5 QtCreator常用快捷键 三、Qt按钮小程序 …

QT入门到实战学习笔记

学习笔记 最新QT从入门到实战完整版|传智教育_哔哩哔哩_bilibili 目录 1.创建一个QT文件 1.1命名规范 1.2快捷键 2QPushButton创建 2.1防止汉语乱码 2.2对象树 2.3Qt窗口坐标体系 3信号和槽机制 3.1自定义信号和槽 3.1.1自定义信号&#xff1a; 3.1.2自定义槽&#…

pdflatex和xelatex的使用差别和建议

关于pdflatex和xelatex的区别的一些注意点 pdflatex 和xelatex分别是什么我遇到的一些问题 pdflatex 和xelatex分别是什么 pdflatex 和xelatex是latex编译中最常用的编译方式&#xff0c;而且效果一般都是比较好的。 PDFLaTeX命令&#xff1a;PDFTeX程序中的命令&#xff0c;用…

关于MAC解决jupyter中出现nbconvert failed/ xelatex not found on path报错

前言 开开心心的花了半个小时做完了2303的期中测试&#xff0c;结果在导出为pdf的时候提示我500错误&#xff0c;说明为nbconvert failed: xelatex not found on path&#xff0c;我当时就蒙了昂&#xff0c;不过还好考试时间是三个小时&#xff0c;还能浪浪&#xff0c;但是我…

【LaTex使用总结】LaTex,pdflatex,xelatex,xetex等的区别和关系

问题是这样产生的&#xff0c;从本科毕设开始接触LaTex起&#xff0c;使用现成的模板进行编译生成操作&#xff0c;一步步按指示操作也从未深究。 后来使用word较多&#xff0c;LaTex经常是简单模板&#xff0c;也渐渐对LaTex的细节不再感兴趣&#xff0c;近期又开始用LaTex撰写…

pyplot 使用 latex 报错:xelatex not found……

错误提示 发生异常: RuntimeError xelatex not found. Install it or change rcParams[pgf.texsystem] to an available TeX implementation. 原始参数&#xff1a; plt.rcParams.update({"pgf.texsystem": "xelatex","text.usetex": True,# u…

Winedt为什么可以用pdfLaTex编译中文(pdfLaTex和XeLaTex的使用)

文章目录 Winedt为什么可以用pdfLaTex编译中文查看Winedt的默认编译器&#xff1a; 1.XeLaTex和pdfLaTex的关系2.Winedt中使用pdfLaTex编译中文的tex3.原因4.验证 Winedt为什么可以用pdfLaTex编译中文 前言&#xff1a;如果你只是想用Winedt实现LaTex中英混排那么可以直接选择…