QT修仙之路1-1--遇见QT

文章目录

  • 遇见QT
    • 二、QT概述
      • 2.1 定义与功能
      • 2.2 跨平台特性
      • 2.3 优点汇总
    • 三、软件安装
    • 四、QT工具介绍(重要)
      • 4.1 Assistant
      • 4.2 Designer
      • 4.3 uic.exe
      • 4.4 moc.exe
      • 4.5 rcc.exe
      • 4.6 qmake
      • 4.7 QTcreater
    • 五、QT工程项目解析(作业)
      • 5.1 配置文件(`.pro`)
      • 5.2 头文件(`.h`)
      • 5.3 源文件(`.cpp`)
      • 5.4 主程序(`main.cpp`)
    • 六、第一个QT界面开发
      • 6.1 创建自定义类
      • 6.2 界面操作代码示例
    • 七、常用类与组件
      • 7.1 信息调试类(`QDebug`)
  • 刷题

遇见QT

二、QT概述

2.1 定义与功能

QT是基于C++编写的一套综合性类库,主要用于图形化界面开发。它不仅包含丰富的界面相关类库,还涉及进程线程库、网络编程库、数据库操作库以及文件操作库等,为开发者提供了一站式的开发解决方案。

2.2 跨平台特性

QT最大的优势之一就是跨平台性,它能在Windows、Linux、MAC等多种操作系统上运行,并且具有较为完备的图形开发库,比Windows的MFC库更强大,这使得很多原本使用MFC进行桌面开发的开发者纷纷转向QT。

2.3 优点汇总

  • 接口封装性好:易于上手,对于学习计算机图形框架具有重要的参考意义。
  • 内存回收机制:QT内部有一套简易好用的内存回收机制,有助于提高开发者的C++水平。
  • 社区环境优良:拥有活跃的社区,市场份额也在稳步上升。
  • 轻量级开发环境:适用于嵌入式开发。

三、软件安装

QT的下载地址为:https://download.qt.io/archive/online_installers/4.2/ 。针对不同操作系统,有相应的安装文件:

  • Windows系统:qt-unified-windows-x86-4.2.0-beta-online.exe
  • Linux系统:qt-unified-windows-x86-4.2.0-beta-online.run
  • MAC系统:qt-unified-windows-x86-4.2.0-beta-online.dmg

四、QT工具介绍(重要)

4.1 Assistant

Assistant是QT类库的帮助手册工具,在开发过程中,当我们对某个类或函数的使用存在疑问时,可通过它快速查找相关信息。

4.2 Designer

Designer用于设计图形化界面,生成的界面文件后缀为.ui。该文件内容是一种标记性语言,方便可视化设计界面布局。

4.3 uic.exe

uic.exe可将.ui文件转换为标准的C++代码ui_***.h。在cmd终端中,使用命令C:\Qt\5.15.2\mingw81_64\bin\uic.exe designer.ui -o ui_designer.h即可完成转换。

4.4 moc.exe

moc.exe是元对象编辑器工具,能将QT中非标准的信号和槽转换为标准的C++代码,确保信号与槽机制的正常运行。

4.5 rcc.exe

rcc.exe作为资源管理器,可将QT资源文件(如图片、音频、视频文件)转换为标准的C++代码,便于在项目中管理和使用资源。

4.6 qmake

qmake是工程管理工具,QT工程文件后缀为.pro。qmake根据.pro文件生成Makefile文件,进而编译C++代码。

4.7 QTcreater

QTcreater是QT集成开发环境工具(IDE),它集成了上述所有工具,为开发者提供了一个便捷的统一开发环境。

五、QT工程项目解析(作业)

在这里插入图片描述

5.1 配置文件(.pro

#引入的类库 core核心库 gui图形化界面
QT       += core gui
# 超过版本4的qt会自动加widgets
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
# c++11语言
CONFIG += c++11# The following define makes your compiler emit warnings if you use
# any Qt feature that has been marked deprecated (the exact warnings
# depend on your compiler). Please consult the documentation of the
# deprecated API in order to know how to port your code away from it.
DEFINES += QT_DEPRECATED_WARNINGS
# 简单警告不报错# You can also make your code fail to compile if it uses deprecated APIs.
# In order to do so, uncomment the following line.
# You can also select to disable deprecated APIs only up to a certain version of Qt.
#DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000    # disables all the APIs deprecated before Qt 6.0.0#管理源文件
SOURCES += \main.cpp \widget.cpp
#管理头文件
HEADERS += \widget.h
#管理ui文件
FORMS += \widget.ui# Default rules for deployment.
qnx: target.path = /tmp/$${TARGET}/bin
else: unix:!android: target.path = /opt/$${TARGET}/bin
!isEmpty(target.path): INSTALLS += target

5.2 头文件(.h

#ifndef WIDGET_H
#define WIDGET_H#include <QWidget>  //引入父类//引入命名空间
QT_BEGIN_NAMESPACE
namespace Ui { class Widget; }//将ui文件生成的c++类引入
QT_END_NAMESPACE
//自定界面类
class Widget : public QWidget//继承父类
{Q_OBJECT//信号与槽public:Widget(QWidget *parent = nullptr);//有参构造 有默认值~Widget();//析构private:Ui::Widget *ui;//声明ui指针指向ui界面
};
#endif // WIDGET_H

5.3 源文件(.cpp

#include "widget.h"
#include "ui_widget.h"
//实现默认有参构造函数
Widget::Widget(QWidget *parent): QWidget(parent)//初始化父类, ui(new Ui::Widget)//初始化ui界面类
{ui->setupUi(this);//调用父类的setupui
}Widget::~Widget()
{delete ui;//释放堆区空间
}

源文件实现了头文件中声明的构造函数和析构函数。构造函数中初始化ui界面,创建自定义组件并设置相关属性;析构函数释放ui指针指向的堆区空间。

5.4 主程序(main.cpp

#include "widget.h"#include <QApplication>//引入应用程序头文件int main(int argc, char *argv[])
{QApplication a(argc, argv);//使用程序类的有参构造,构造出一个对象Widget w;//自定义界面w.show();//界面展示return a.exec();//轮训监控界面事件
}

六、第一个QT界面开发

6.1 创建自定义类

创建自定义类时需指定父类,如选择QMainWindow作为父类,它会提供菜单栏、状态栏和中央窗口。

6.2 界面操作代码示例

// 信息调试类的使用
qDebug("hello world %d", 520);
qDebug() << "hello world"<< "  "<< 520;
// 打印当前界面的默认尺寸
qDebug() << this->size();
qDebug() << this->height();
qDebug() << this->width();
// 重新设置界面尺寸
this->resize(800, 600);
this->resize(QSize(500,300));
this->setMaximumSize(1000, 800);
this->setMinimumSize(200,100);
this->setFixedSize(800,600);
// 操作窗口名称
qDebug() << this->windowTitle();
this->setWindowTitle("鹏哥快聊");
this->setWindowIcon(QIcon("C:/Users/鹏程万里/Desktop/icon.png"));
// 去除窗口头部
this->setWindowFlag(Qt::FramelessWindowHint);
// 设置窗口样式表
this->setStyleSheet("background-color:pink;");
// 设置窗口透明度
this->setWindowOpacity(0.3);
// 移动窗体位置
//this->move(200,300);
qDebug() << this->pos();

这些代码实现了信息调试、界面尺寸和名称操作、窗口样式和透明度设置等功能。

七、常用类与组件

7.1 信息调试类(QDebug

// 类似于printf
qDebug("", 输出内容);
// 类似于cout
qDebug() << 输出内容;

在这里插入图片描述
在这里插入图片描述

刷题

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
请添加图片描述

在这里插入图片描述

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

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

相关文章

python实现情绪识别模块,并将模块封装成可执行文件

目录&#xff1a; 1.源码&#xff1a;2.情绪识别模型运行流程&#xff1a;3.模型封装需要注意的地方&#xff1a;4.未解决问题&#xff1a; 1.源码&#xff1a; https://gitcode.com/xyint/deep_learning.git 2.情绪识别模型运行流程&#xff1a; 需要获取用户摄像头权限&…

网络防御高级02-综合实验

web页面&#xff1a; [FW]interface GigabitEthernet 0/0/0 [FW-GigabitEthernet0/0/0]service-manage all permit 需求一&#xff0c;接口配置&#xff1a; SW2: [Huawei]sysname SW2 1.创建vlan [sw2]vlan 10 [sw2]vlan 20 2.接口配置 [sw2]interface GigabitEther…

Arbess基础教程-创建流水线

Arbess(谐音阿尔卑斯) 是一款开源免费的 CI/CD 工具&#xff0c;本文将介绍如何使用 Arbess 配置你的第一条流水线&#xff0c;以快速入门上手。 1. 创建流水线 根据不同需求来创建不同的流水线。 1.1 配置基本信息 配置流水线的基本信息&#xff0c;如分组&#xff0c;环境&…

MySQL下载过程

MySQL Enterprise Edition Downloads | Oracle mysql官方下载网址&#xff08;9.2版本&#xff09; 下面的示例是5.7的包&#xff0c;过程是一样的 port&#xff1a;3308&#xff08;默认的是3306&#xff0c;笔者下了一个占用了该端口&#xff09; root&#xff1a;123456 问题…

StochSync:可在任意空间中生成360°全景图和3D网格纹理

StochSync方法可以用于在任意空间中生成图像&#xff0c;尤其是360全景图和3D网格纹理。该方法利用了预训练的图像扩散模型&#xff0c;以实现零-shot生成&#xff0c;消除了对新数据收集和单独训练生成模型的需求。StochSync 结合了 Diffusion Synchronization&#xff08;DS&…

Windows逆向工程入门之汇编环境搭建

公开视频 -> 链接点击跳转公开课程博客首页 -> ​​​链接点击跳转博客主页 Visual Studio逆向工程配置 基础环境搭建 Visual Studio 官方下载地址安装配置选项(后期可随时通过VS调整) 使用C的桌面开发 拓展可选选项 MASM汇编框架 配置MASM汇编项目 创建新项目 选择空…

【多模态大模型】系列1:CLIP【多模态领域开山之作】

目录 1 模型结构2 伪代码3 Loss计算方法 官方网站&#xff1a;https://openai.com/index/clip/ 论文&#xff1a;Learning Transferable Visual Models From Natural Language Supervision GitHub&#xff1a;https://github.com/openai/CLIP Colab&#xff1a;https://colab.r…

SSA-TCN麻雀算法优化时间卷积神经网络时间序列预测未来Matlab实现

SSA-TCN麻雀算法优化时间卷积神经网络时间序列预测未来Matlab实现 目录 SSA-TCN麻雀算法优化时间卷积神经网络时间序列预测未来Matlab实现预测效果基本介绍程序设计参考资料 预测效果 基本介绍 1.Matlab实现SSA-TCN麻雀算法优化时间卷积神经网络时间序列预测未来&#xff08;优…

idea整合deepseek实现AI辅助编程

1.File->Settings 2.安装插件codegpt 3.注册deepseek开发者账号&#xff0c;DeepSeek开放平台 4.按下图指示创建API KEY 5.回到idea配置api信息&#xff0c;File->Settings->Tools->CodeGPT->Providers->Custom OpenAI API key填写deepseek的api key Chat…

k8s部署elasticsearch

前置环境&#xff1a;已部署k8s集群&#xff0c;ip地址为 192.168.10.1~192.168.10.5&#xff0c;总共5台机器。 1. 创建provisioner制备器&#xff08;如果已存在&#xff0c;则不需要&#xff09; 制备器的具体部署方式&#xff0c;参考我之前的文章&#xff1a;k8s部署rab…

(done) openMP学习 (Day13: 线程私有数据和如何支持库(Pi again),蒙特卡洛计算 Pi,线性同余法)

url: https://dazuozcy.github.io/posts/introdution-to-openmp-intel/#23-%E5%8F%AF%E6%80%95%E7%9A%84%E4%B8%9C%E8%A5%BF%E5%86%85%E5%AD%98%E6%A8%A1%E5%9E%8Batomicsflushpairwise%E5%90%8C%E6%AD%A5%20 视频&#xff1a;https://www.bilibili.com/video/BV1SW411s7ST?s…

借助AI,轻松读好书

读书笔记 AI可以帮助我们写读书笔记&#xff0c;通过智能化的分类和标注技术&#xff0c;将我们的笔记进行分类整理&#xff0c;使其更加清晰易懂&#xff0c;帮助我们高效&#xff0c;准确&#xff0c;深入的总结和掌握书中的知识&#xff0c;实现更好的学习和成长。 《异类》…

【AIGC】语言模型的发展历程:从统计方法到大规模预训练模型的演化

博客主页&#xff1a; [小ᶻ☡꙳ᵃⁱᵍᶜ꙳] 本文专栏: AIGC | ChatGPT 文章目录 &#x1f4af;前言&#x1f4af;语言模型的发展历程&#xff1a;从统计方法到大规模预训练模型的演化1 统计语言模型&#xff08;Statistical Language Model, SLM&#xff09;&#xff1a;统…

活动预告 |【Part1】Microsoft Azure 在线技术公开课:基础知识

课程介绍 参加“Azure 在线技术公开课&#xff1a;基础知识”活动&#xff0c;培养有助于创造新的技术可能性的技能并探索基础云概念。参加我们举办的本次免费培训活动&#xff0c;扩充自身的云模型和云服务类型知识。你还可以查看以计算、网络和存储为核心的 Azure 服务。 活…

python 语音识别方案对比

目录 一、语音识别 二、代码实践 2.1 使用vosk三方库 2.2 使用SpeechRecognition 2.3 使用Whisper 一、语音识别 今天识别了别人做的这个app,觉得虽然是个日记app 但是用来学英语也挺好的,能进行语音识别,然后矫正语法,自己说的时候 ,实在不知道怎么说可以先乱说,然…

C# OpenCvSharp 部署MOWA:多合一图像扭曲模型

目录 说明 效果 项目 代码 下载 参考 C# OpenCvSharp 部署MOWA&#xff1a;多合一图像扭曲模型 说明 算法模型的paper名称是《MOWA: Multiple-in-One Image Warping Model》 ariv链接 https://arxiv.org/pdf/2404.10716 效果 Stitched Image 翻译成中文意思是&…

【Java】线上故障排查实战

引言 JVM命令详细可以看前一篇文章&#xff0c;本篇文章基于之前的命令做一次简单的线上故障排查分析 JVM常见命令 实战 1. 一般显示都是Linux系统&#xff0c;我们排查winodows系统想知道CPU和内存使用情况&#xff0c;打开任务管理器就可以出现图形化界面&#xff0c;而L…

编译spring 6.2.2

如何编译Spring 6.2.2 下载spring 6.2.2 首先&#xff0c;下载spring 6.2.2&#xff0c;地址&#xff1a;下载 解压到你的目录下。 下载gradle 下载gradle&#xff0c;这是spring项目的依赖管理工具&#xff0c;本文下载的是8.12.1 gradle下载 下载合适的JDK 本文下载的是…

深度求索(DeepSeek)的AI革命:NLP、CV与智能应用的技术跃迁

Deepseek官网&#xff1a;DeepSeek 引言&#xff1a;AI技术浪潮中的深度求索 近年来&#xff0c;人工智能技术以指数级速度重塑全球产业格局。在这场技术革命中&#xff0c;深度求索&#xff08;DeepSeek&#xff09;凭借其前沿的算法研究、高效的工程化能力以及对垂直场景的…

Android Studio超级详细讲解下载、安装配置教程(建议收藏)

博主介绍&#xff1a;✌专注于前后端、机器学习、人工智能应用领域开发的优质创作者、秉着互联网精神开源贡献精神&#xff0c;答疑解惑、坚持优质作品共享。本人是掘金/腾讯云/阿里云等平台优质作者、擅长前后端项目开发和毕业项目实战&#xff0c;深受全网粉丝喜爱与支持✌有…