Qt入门教程(一):Qt使用的基本知识

目录

Qt简介

新建项目

构建目录和工作目录

构建目录

工作目录

项目结构

项目配置文件 .pro

用户文件 .user

主文件 main.cpp

头文件 dialog.h

源文件 dialog.cpp

帮助文档

三种查询文档的方式:

文档的重点位置:​编辑

调试信息


Qt简介

Qt是一个跨平台的C++应用程序开发框架。它提供了一套丰富的工具和类库,能够帮助开发者快速开发高质量的应用程序。Qt最初由挪威公司Trolltech开发,现在由Digia公司维护和支持。

Qt具有很多优点,包括:

  1. 跨平台性:Qt可以在多个操作系统上运行,包括Windows、macOS、Linux等。这意味着开发者可以使用同一套代码开发应用程序,而不需要为不同的平台编写不同的代码。
  2. 强大的图形界面设计能力:Qt提供了丰富的图形界面设计工具和类库,开发者可以轻松地创建漂亮的用户界面。
  3. 高度灵活和可扩展:Qt的类库非常丰富,开发者可以根据自己的需求选择合适的模块进行开发。此外,Qt也支持插件机制,开发者可以通过插件的方式扩展框架的功能。
  4. 良好的性能:Qt通过优化的C++代码和底层的操作系统接口,可以提供较高的性能和响应速度。
  5. 大量的文档和社区支持:Qt拥有完善的文档和社区支持,开发者可以轻松地找到答案和解决方案,避免重复工作。

总的来说,Qt是一个强大的应用程序开发框架,适用于各种类型的应用程序开发,包括桌面应用、嵌入式系统、移动应用等。无论是个人开发者还是企业开发团队,Qt都是一个值得考虑的选择。

Qt最重要的特点就是其跨平台的特性,与Java(一次编译到处运行)的跨平台不同的是,Qt的跨平台指的是一次编程,到处编译。 


 注:本文以及之后的文章使用的软件为 Qt Creator


新建项目

操作步骤如下:

1.  在Qt Creator中点击

2.  在弹出的窗口中,按照下图所示依次操作。

3.  在弹出的窗口中设置项目名称和路径,注意不能包含中文字符!!!!

4.  直接点击’下一步‘。

5.  在弹出的窗口中,选择基类为“QDialog”,选择是否“创建界面”,然后点击“下一步”。

6.  在项目管理界面,直接点击完成。创建成功后可以看到项目中包含的文件。

7.  点击可以编译运行项目(快捷键ctrl + R),项目运行后可以看到一个可视化窗口,此时表示项目可以正常运行。

构建目录和工作目录

 项目运行后,存在两个重要的目录:构建目录 和 工作目录

构建目录

用于存放项目编译过程中产生的文件,这个目录位置:

工作目录

工作目录就是创建项目时设置的目录,用于存放项目的源代码文件等开发文件。

工作目录可以通过下面的方式定位:

在项目管理界面,随便选择一个文件,右击->在Explorer中打开

工作目录下包含以下文件:

项目结构

项目配置文件 .pro

 此文件在纯C++项目中存在,用于配置项目的参数。在Windows的文件管理器中,直接双击.pro文件可以导入项目。

.pro文件的内容及作用如下

#-------------------------------------------------
#
# Project created by QtCreator 2024-06-28T09:52:24
#
#-------------------------------------------------# 添加core核心模块、gui传统的图形界面模块
QT       += core gui# 当Qt主版本号大于4(当前为5.4.0)时,添加新的图形界面模块widgets
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets# 生成的可执行文件.exe的名称 Day1_24022_helloQt.exe
TARGET = Day1_24022_helloQt
# 项目构建模式
TEMPLATE = app# 项目中包含的源文件
SOURCES += main.cpp\dialog.cpp
# 项目中包含的头文件
HEADERS  += dialog.h

用户文件 .user

此文件在Qt Creator中不可见,但是确实存在于工作目录中(项目构建之后)。

此文件是Qt根据当前计算机的开发环境自动生产的文件,每个计算机几乎不通用此文件,因此在提交代码时,一般先删除此文件。

主文件 main.cpp

 程序的入口,包含主函数。通常不需要改动主文件代码。

#include "dialog.h"
// QApplication 类 管理GUI应用程序的控制流和主设置
#include <QApplication>/*** @brief main 主函数,程序的入口* @return*/
int main(int argc, char *argv[])
{// 创建了一个管家类的栈内存对象,管理整个应用程序QApplication a(argc, argv);// 创建了一个自定义对话框窗口类的栈内存Dialog w;// 显示w.show();return a.exec();
}

头文件 dialog.h

在Qt中一个自定义类的声明都写在.h中,这个类所用到的其他类的头文件,也写在此文件中。

#ifndef DIALOG_H
#define DIALOG_H
// Qt 自带类的头文件
#include <QDialog>/*** @brief The Dialog class 自定义对话框窗口类* 继承QDialog类(对话框窗口的基类)*/
class Dialog : public QDialog
{Q_OBJECT public:Dialog(QWidget *parent = 0); // 构造函数~Dialog();  // 析构函数
};#endif // DIALOG_H

源文件 dialog.cpp

包含与同名的头文件配套的类外定义。

#include "dialog.h"
/*** @brief Dialog::Dialog 构造函数的定义* @param parent 参数*/
Dialog::Dialog(QWidget *parent): QDialog(parent) // 透传构造
{
}// 析构函数
Dialog::~Dialog()
{}

帮助文档

学习Qt一定要学习如何查阅帮助文档,通常对于不是很常用内容的开发,都是随用随查。

三种查询文档的方式:

1.  直接启动 Assistant 程序,是一个独立的文档程序。对于有副屏的人建议使用这个方法,方便随用随查。

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

3.  光标定位到要查询的内容还是那个,双击键盘F1(笔记本电脑可能需要按住fn),可以直接跳转到文档内容。

文档的重点位置:

调试信息

在C语言和C++中,无论是printf还是cout输出的内容都不区分前后台,但是Qt中输出的内容是区分前后台的,通常前台指的是图形用户界面,用户可以直接通过软件界面看到;后台指的是在Qt Creator中的(控制台)中,这里显示的信息用户是不可见的,只对开发者开放。

使用 QDebug 类的 qDebug()  输出调试信息,支持中文。整个使用方式与 cout 类似,但是有以下区别:

● 连续输出时,自动添加空格

● 每次输出语句结束时,自动添加换行

 使用步骤

1、在 dialog.h 里添加头文件 #include <QDebug> 

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

 2、在 dialog.cpp 里使用 qDebug()

#include "dialog.h"Dialog::Dialog(QWidget *parent): QDialog(parent)
{qDebug() << "构造函数" << "HelloWorld";
}Dialog::~Dialog()
{qDebug() << "析构函数";
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/39232.shtml

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

相关文章

java 代码块

Java中的代码块主要有三种类型&#xff1a;普通代码块、静态代码块、构造代码块。它们的用途和执行时机各不相同。 普通代码块&#xff1a;在方法内部定义&#xff0c;使用一对大括号{}包围的代码片段。它的作用域限定在大括号内&#xff0c;每当程序执行到该代码块时就会执行其…

全平台7合一自定义小程序源码系统功能强大 前后端分离 带完整的安装代码包以及搭建教程

系统概述 这款全平台 7 合一自定义小程序源码系统是专为满足各种业务需求而设计的。它整合了多种功能&#xff0c;能够在不同平台上运行&#xff0c;为用户提供了全方位的体验。无论你是企业主、开发者还是创业者&#xff0c;这款系统都能为你提供强大的支持。 代码示例 系统…

crewAI实践(包含memory的启用)--AiRusumeGenerator

crewAI实践--AiRusumeGenerator 什么是crewAIAiRusumeGenerator功能效果展示开发背景开发步骤1. 首先得学习下这款框架原理大概用法能够用来做什么&#xff1f; 2. 安装crewAI以及使用概述3. 写代码Agents.pyTasks.pymian.py关于task中引入的自定义工具这里不再赘述 什么是crew…

V Rising夜族崛起的管理员指令大全

使用方法&#xff1a; 如果没有启用控制台需要先启用控制台 打开游戏点击选项&#xff08;如果在游戏内点击ESC即可&#xff09;&#xff0c;在通用页面找到启用控制台&#xff0c;勾选右边的方框启用 在游戏内点击键盘ESC下方的波浪键&#xff08;~&#xff09;使用控制台 指…

构建LangChain应用程序的示例代码:49、如何使用 OpenAI 的 GPT-4 和 LangChain 库实现多模态问答系统

! pip install "openai>1" "langchain>0.0.331rc2" matplotlib pillow加载图像 我们将图像编码为 base64 字符串&#xff0c;如 OpenAI GPT-4V 文档中所述。 import base64 import io import osimport numpy as np from IPython.display import HT…

PDF一键转PPT文件!这2个AI工具值得推荐,办公必备!

PDF转换为PPT文件&#xff0c;是职场上非常常见的需求&#xff0c;过去想要把PDF文件转换为PPT&#xff0c;得借助各种文件转换工具&#xff0c;但在如今AI技术主导的大背景下&#xff0c;我们在选用工具时有了更多的选择&#xff0c;最明显的就是基于AI技术打造的AI格式转换工…

《昇思25天学习打卡营第21天 | 昇思MindSporePix2Pix实现图像转换》

21天 本节学习了通过Pix2Pix实现图像转换。 Pix2Pix是基于条件生成对抗网络&#xff08;cGAN&#xff09;实现的一种深度学习图像转换模型。可以实现语义/标签到真实图片、灰度图到彩色图、航空图到地图、白天到黑夜、线稿图到实物图的转换。Pix2Pix是将cGAN应用于有监督的图…

gin框架 gin.Context中的Abort方法使用注意事项 - gin框架中立刻中断当前请求的方法

gin框架上下文中的Abort序列方法&#xff08;Abort&#xff0c;AbortWithStatus&#xff0c; AbortWithStatusJSON&#xff0c;AbortWithError&#xff09;他们都不会立刻终止当前的请求&#xff0c;在中间件中调用Abort方法后中间件中的后续的代码会被继续执行&#xff0c;但是…

【Unity 人性动画的复用性】

Unity的动画系统&#xff0c;通常称为Mecanim&#xff0c;提供了强大的动画复用功能&#xff0c;特别是针对人型动画的重定向技术。这种技术允许开发者将一组动画应用到不同的角色模型上&#xff0c;而不需要为每个模型单独制作动画。这通过在模型的骨骼结构之间建立对应关系来…

系统安全与应用

目录 1. 系统账户清理 2. 密码安全性控制 2.1 密码复杂性 2.2 密码时限 3 命令历史查看限制 4. 终端自动注销 5. su权限以及sudo提权 5.1 su权限 5.2 sudo提权 6. 限制更改GRUB引导 7. 网络端口扫描 那天不知道为什么&#xff0c;心血来潮看了一下passwd配置文件&am…

三维家:SaaS的IT规模化降本之道|OceanBase 《DB大咖说》(十一)

OceanBase《DB大咖说》第 11 期&#xff0c;我们邀请到了三维家的技术总监庄建超&#xff0c;来分享他对数据库技术的理解&#xff0c;以及典型 SaaS 场景在数据库如何实现规模化降本的经验与体会。 庄建超&#xff0c;身为三维家的技术总监&#xff0c;独挑大梁&#xff0c;负…

grpc学习golang版( 八、双向流示例 )

系列文章目录 第一章 grpc基本概念与安装 第二章 grpc入门示例 第三章 proto文件数据类型 第四章 多服务示例 第五章 多proto文件示例 第六章 服务器流式传输 第七章 客户端流式传输 第八章 双向流示例 文章目录 一、前言二、定义proto文件三、编写server服务端四、编写client客…

中霖教育:环评工程师好考吗?

【中霖教育好吗】【中霖教育怎么样】 在专业领域&#xff0c;环评工程师资格认证考试是一项具有挑战性的考试&#xff0c;考试科目为&#xff1a;《环境影响评价相关法律法规》 《环境影响评价技术导则与标准》《环境影响评价案例分析》《环境影响评价技术方法》。 四个科目…

【Linux】—VMware安装Centos7步骤

文章目录 前言一、虚拟机准备二、CentOS7操作系统安装 前言 本文介绍VMware安装Centos7步骤。 软件准备 软件&#xff1a;VMware Workstation Pro&#xff0c;直接官网安装。镜像&#xff1a;CentOS7&#xff0c;镜像官网下载链接&#xff1a;https://vault.centos.org/&#x…

[C++]——同步异步日志系统(1)

同步异步日志系统 一、项⽬介绍二、开发环境三、核心技术四、环境搭建五、日志系统介绍5.1 为什么需要日志系统5.2 日志系统技术实现5.2.1 同步写日志5.2.2 异步写日志 日志系统&#xff1a; 日志&#xff1a;程序在运行过程中&#xff0c;用来记录程序运行状态信息。 作用&…

【面试系列】机器学习工程师高频面试题及详细解答

欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;欢迎订阅相关专栏&#xff1a; ⭐️ 全网最全IT互联网公司面试宝典&#xff1a;收集整理全网各大IT互联网公司技术、项目、HR面试真题. ⭐️ AIGC时代的创新与未来&#xff1a;详细讲解AIGC的概念、核心技术、…

JSONpath语法怎么用?

JSONPath 可以看作定位目标对象位置的语言&#xff0c;适用于 JSON 文档。 JSONPath 与 JSON 的 关系相当于 XPath 与 XML 的关系&#xff0c; JSONPath 参照 XPath 的路径表达式&#xff0c;提供了描述 JSON 文档层次结构的表达式&#xff0c;通过表达式对目标…

红酒与露营:户外时光的好伴侣

在繁忙的都市生活中&#xff0c;人们总是渴望逃离喧嚣&#xff0c;寻找一处宁静的天地&#xff0c;与大自然亲密相拥。露营&#xff0c;作为一种返璞归真的户外生活方式&#xff0c;成为了许多人心中的理想选择。而在露营的浪漫时光里&#xff0c;一瓶雷盛红酒的陪伴&#xff0…

AI图生视频工具测试

环境&#xff1a; 即梦 pika LUMA 可灵 问题描述&#xff1a; AI图生视频工具测试下面是原图 解决方案&#xff1a; 1.即梦 效果 2.pika 生成效果 3.LUMA 生成效果还行 4.可灵 生成效果最好

nginx 只有图片等静态资源时 监听80端口 会404 NOT FOUND

解决方法 删除 /var/nginx/sites-enabled 原因&#xff1a;当nginx没有设置首页路径index时&#xff0c;sites-enabled目录中配置的优先级会高于nginx.conf 导致404 NOT FOUND sites-enabled文件中的default会将80端口索引至默认值&#xff1a;/var/www/html目录下&#xff…