QT基础知识

news2024/11/27 2:36:40

QT基础知识

文章目录

  • QT基础知识
    • 1、QT是什么
    • 2、Qt的发展史
    • 3、为什么学习QT
    • 4、怎么学习QT
      • 1、工程的创建(环境的下载与安装请百度)
      • 2、创建的工程结构说明
      • 3、怎么看帮助文档
        • 1、类使用的相关介绍
        • 2. 查看所用部件(类)的相应成员函数(功能,参数,返回值)
        • 3、查看部件的信号
        • 4、查看部件的事件(所对应的虚函数如何编写)
    • 5. 总结


1、QT是什么

Qt是一个跨平台C++图形用户界面应用程序框架。它为应用程序开发者提供建立艺术级图形界面所需的所有功能。它是完全面向对象的,很容易扩展,并且允许真正的组件编程。

2、Qt的发展史

1991年 Qt最早由奇趣科技开发
1996年 进入商业领域,它也是目前流行的Linux桌面环境KDE的基础
2008年 奇趣科技被诺基亚公司收购,Qt称为诺基亚旗下的编程语言
2012年 Qt又被Digia公司收购
2014年4月 跨平台的集成开发环境Qt Creator3.1.0发布,同年5月20日配发了Qt5.3正式版,至此Qt实现了对iOS、Android、WP等各平台的全面支持。

3、为什么学习QT

  1. 更好的学习C++
  2. 后台逻辑与前台界面的协调。
  3. 跨平台(比如需要做安卓与ios开发由于Qt的跨平台一个平台写好的程序另一个平台稍微修改就可以运行起来

4、怎么学习QT

借助Qt帮助文档(很重要)

1、工程的创建(环境的下载与安装请百度)

打开Qt Creator 界面选择 New Project或者选择菜单栏 【文件】-【新建文件或项目】菜单项
在这里插入图片描述
弹出New Project对话框,选择Qt Widgets Application,
在这里插入图片描述
选择【Choose】按钮,弹出如下对话框
路径不要包含中文在这里插入图片描述
设置项目名称和路径,按照向导进行下一步,
在这里插入图片描述
选择编译套件
在这里插入图片描述
基类选择有三种:
(1)QMainWindow 是主窗口类,主窗口具有主菜单栏、工具栏、状态栏,类似于一般的应用程序主窗口(就行Qt Creater的主窗口上的有编辑栏那种)
(2)QWidget 是所有具有可视化界面类的基类,选择QWidget 创建的界面对各种界面组件度都可以支持(反正我最喜欢用这个,一片空白随便搞)
(3)QDialog 是对话框类,可建立一个基于对话框的界面。

如果不需要ui 创建界面可以不勾选 一般都是要的。
在这里插入图片描述
即可创建出一个Qt桌面程序。

2、创建的工程结构说明

在这里插入图片描述
(1)test.pro 是项目管理文件,包括一些对项目的设置项,特别是后续开发中,需要设计添加模块的问题,就在 pro 文件中添加需要的模块;同时你打开Qt项目时也是选择这个。
(2)Header文件保存所有窗口类头文件的文件分组,mywidge.h
(3)Source 文件保存C++ 源码的文件分组。main.cpp是主函数文件,也是应用程序执行的入口
(4)Froms 文件分组是保存项目的所有界面文件(.ui),双击.ui文件可以进入界面编辑界面。

.pro 文件的说明
在这里插入图片描述
main.cpp 主程序
在这里插入图片描述mywidget .h 文件
在这里插入图片描述
(1)Q_OBJECT :使用了Q_OBJECT这个宏,这是使用Qt的信号与槽(signal与slot)机制的类都必须加入的宏
(2) Ui::Widget *ui 指针,是为了使用前面声明的namespace Ui里面的Widget类定义,这个很重要,在cpp中调用ui文件中的控件时,都是以ui开头指向你需要调用的控件
(3)class myWidget : public QWidget 这就说明,myWidget类是QWidget类的一个派生类。

mywidget.cpp 文件
在这里插入图片描述
(1)#include “ui_widget.h” 这个就是Qt编译生成的与UI文件 widget.ui 对应的类定义文件
(2) myWidget::myWidget(QWidget *parent) : QWidget(parent), ui(new Ui::Widget) 构造函数头部,
意义:执行父类QWidget 的构造函数,创建一个Ui::Widget 类的对象 ui 。这个ui 就是Widget 的private 中定义的指针变量 ui。(采用C++中的成员初始化列表语句)
(3)ui->setupUi(this) 执行Ui::Widget 类的setupUi函数,这个函数实现窗口的生成与各种属性的设置、信号与槽的关联,this指针指向定义的widget类
(4)析构函数就是删除用 new 创建的ui指针

3、怎么看帮助文档

学习图形界面开发,肯定离不开帮助文档的使用,因为它不像 C 语言那样就那么几个函数接口,图形接口的接口可以用海量来形容,常用的我们可能能记住,其它的真的没有必要去记,用到什么就去帮助文档查看用法。

我们使用 Qt 帮助文档,主要分为这么几步:
1)类使用的相关介绍
2)查看所用部件(类)的相应成员函数(功能,参数,返回值)
3)查看部件的信号
4)查看部件的事件(所对应的虚函数如何编写)

1、类使用的相关介绍

光标移动到类名字的地方,接着按“F1”即可跳转到所对应的帮助文件:
在这里插入图片描述再按一次“F1”即可全屏显示帮助文档页面,按“Esc”即可退出帮助文档。
类的相关介绍说明:
在这里插入图片描述
所要查看的几个重要信息:
在这里插入图片描述
公有成员函数:操作部件属性的相关函数。
公有槽函数:Qt类中已经定义好的槽函数,直接可与信号相连接。
信号:软中断,如按下按钮触发 pressed() 信号等。
保护成员函数:通常事件所对应的虚函数放在此处。
事件:常用事件,如操作鼠标触发的鼠标事件。

当然,我们可以直接在“帮助”模式下的“索引”输入框里输入所需查看的类:
在这里插入图片描述

2. 查看所用部件(类)的相应成员函数(功能,参数,返回值)

查看所用部件的相应成员函数( 本身的成员函数,继承过来的成员函数 ),主要是为了查看这个成员函数如何使
用,包括函数的功能,参数,返回值。
下面以 QPushButton (普通按钮)为例:
a)选择 QPushButton 类中的“公有函数”:
在这里插入图片描述
b)相应函数的简单介绍:
在这里插入图片描述
c)点击函数名字即可查看其相应用法:
在这里插入图片描述
d)很多时候,我们需要使用到继承过来的函数,如给按钮设置内容( setText() )即是从 QAbstractButton
继承过来:
在这里插入图片描述
点击“QAbstractButton”即可跳转到 QAbstractButton 公有函数的地方:
在这里插入图片描述
点击函数名字即可查看其用法:
在这里插入图片描述
e)操作过程中,可能需要用到“后退”、“前进”进行页面来回切换:
在这里插入图片描述
f)很多事情,我们可能需要在使用到某个函数时,再查看其用法。
首先,需要先把函数的参数随便拿个数填好,然后,光标移动到函数名字的地方,再按“F1”即可跳转到此
函数的使用说明:
在这里插入图片描述

3、查看部件的信号

还是以 QPushButton 为例:
a)在 QPushButton 类中不能直接查看 Signals 的信息,需要在其基类“QAbstractButton ”中查找:
在这里插入图片描述
b)在“QAbstractButton ”,选择“Signals”:
在这里插入图片描述
c)除了本身信号,还有继承过来的信号:
在这里插入图片描述
d)点击信号名字,即可查看信号的相关说明:
在这里插入图片描述

4、查看部件的事件(所对应的虚函数如何编写)

部件常用事件主要在 QWidget 中声明,选择“Events”即可查看相关说明:
在这里插入图片描述每个事件都对应着事件函数:
在这里插入图片描述
事件函数的相关说明:
在这里插入图片描述

5. 总结

提示:这里对文章进行总结:
例如:以上就是今天要讲的内容,一些Qt的介绍。QT工程的创建及简单工程的生成文档的说明。怎么看QT的帮助文档。

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

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

相关文章

文章解读与仿真程序复现思路——电网技术EI\CSCD\北大核心《基于碳捕集与封存-电转气-电解熔融盐协同的虚拟电厂优化调度》

本专栏栏目提供文章与程序复现思路,具体已有的论文与论文源程序可翻阅本博主的专栏栏目《论文与完整程序》 这个标题涉及到多个关键概念,让我们逐一解读: 碳捕集与封存(Carbon Capture and Storage,CCS)&a…

【Linux】常用的基本命令指令①

前言:从今天开始,我们逐步的学习Linux中的内容,和一些网络的基本概念,各位一起努力呐! 💖 博主CSDN主页:卫卫卫的个人主页 💞 👉 专栏分类:数据结构 👈 💯代码…

如何解决大模型的「幻觉」问题?

如何解决大模型的「幻觉」问题? 如何解决大模型的「幻觉」问题?幻觉产生原因?模型原因数据层面 幻觉怎么评估?Reference-based(基于参考信息)基于模型的输入、预先定义的目标输出基于模型的输入 Reference-…

基于ssm的资产管理信息系统+vue论文

摘要 当下,正处于信息化的时代,许多行业顺应时代的变化,结合使用计算机技术向数字化、信息化建设迈进。以前企业对于资产信息的管理和控制,采用人工登记的方式保存相关数据,这种以人力为主的管理模式已然落后。本人结…

《Linux C编程实战》笔记:实现自己的myshell

ok,考完试成功复活 这次是自己的shell命令程序的示例 流程图: 关键函数 1.void print_prompt() 函数说明:这个函数打印myshell提示符,即“myshell$$”. 2.void get_input(char *buf) 函数说明:获得一条指令&#…

13|代理(下):结构化工具对话、Self-Ask with Search以及Plan and execute代理

13|代理(下):结构化工具对话、Self-Ask with Search以及Plan and execute代理 什么是结构化工具 LangChain 的第一个版本是在 2022 年 11 月推出的,当时的设计是基于 ReAct 论文构建的,主要围绕着代理和工…

2024美赛数学建模常用数学建模模型之——层次分析法

一、层次分析法的基本原理与步骤 人们在进行社会的、经济的以及科学管理领域问题的系统分析中,面临的常常是 一个由相互关联、相互制约的众多因素构成的复杂而往往缺少定量数据的系统。层次 分析法为这类问题的决策和排序提供了一种新的、简洁而实用的建模方法。 …

GPU的硬件架构

SM: streaming Multiprocessor 流多处理器 sm里面有多个(sp)cuda core 32个线程称为一个warp,一个warp是一个基本执行单元 抽象概念:grid 网格 block 块 thread 线程 块中的线程大小是有讲究的,关乎到资源的调度,一般是128&#x…

macbook电脑2024免费好用的系统清理优化软件CleanMyMac X4.14.7

CleanMyMac X2024来帮助你找到和删除不需要的文件。CleanMyMac X是一款专业的mac清理软件,它可以智能地扫描你的磁盘空间,找出并删除大型和旧文件,系统垃圾,iTunes垃圾,邮件附件,照片库垃圾等,让…

【Vue2+3入门到实战】(22)VUE3之组合式API - setup、reactive和ref函数、computed、watch、生命周期函数详细讲解

目录 一、组合式API - setup选项1. setup选项的写法和执行时机2. setup中写代码的特点3. <script setup>语法糖 二、组合式API - reactive和ref函数1. reactive2. ref3. reactive 对比 ref 三、组合式API - computed四、组合式API - watch1. 侦听单个数据2. 侦听多个数据…

Java学习,一文掌握Java之SpringBoot框架学习文集(3)

&#x1f3c6;作者简介&#xff0c;普修罗双战士&#xff0c;一直追求不断学习和成长&#xff0c;在技术的道路上持续探索和实践。 &#x1f3c6;多年互联网行业从业经验&#xff0c;历任核心研发工程师&#xff0c;项目技术负责人。 &#x1f389;欢迎 &#x1f44d;点赞✍评论…

electron进程通信之预加载脚本和渲染进程对主进程通信

主进程和预加载脚本通信 主进程 mian,js 和预加载脚本preload.js,在主进程中创建预加载脚本, const createWindow () > {// Create the browser window.const mainWindow new BrowserWindow({width: 300,height: 300,// 指定预加载脚本webPreferences: {preload: path.j…

数据结构【查找篇】

数据结构【查找篇】 文章目录 数据结构【查找篇】前言为什么突然想学算法了&#xff1f;为什么选择码蹄集作为刷题软件&#xff1f; 目录一、顺序查找二、折半查找三、 二叉排序树的查找四、红黑树 结语 前言 为什么突然想学算法了&#xff1f; > 用较为“官方”的语言讲&am…

22 闪烁按钮

效果演示 实现了一个按钮的样式&#xff0c;包括背景颜色、边框、圆角、点击效果等。当鼠标悬停在按钮上时&#xff0c;按钮的背景颜色和文字颜色会发生变化&#xff0c;同时按钮会出现闪烁的效果。 Code <button class"btn"><svg height"24" wi…

UDP通信(服务器-客户端)

一、 UDP服务器-客户端通信 UDP&#xff08;User Datagram Protocol&#xff09;是一种面向无连接的传输层协议&#xff0c;它提供了一种简单的、不可靠的数据传输服务。与TCP&#xff08;Transmission Control Protocol&#xff09;不同&#xff0c;UDP不建立连接&#xff0c;…

奈奎斯特定理

奈奎斯特定理是通信领域中重要的理论基础之一&#xff0c;它对于数字通信系统中的信号采样和重构具有至关重要的作用。在数字信号处理和通信技术中&#xff0c;奈奎斯特定理的应用不仅具有理论意义&#xff0c;还对通信系统的设计、优化和性能提升起着重要的指导作用。本文将以…

MySQL8.0主从复制实现及遇到的个人问题

文章目录 1、准备两个服务器或者虚拟机2、主库配置3、从库配置4、配置过程中使用到的命令5、遇到的问题 1、准备两个服务器或者虚拟机 这里使用的VM虚拟机的Centos、MySQL版本是8.0.26、使用FinalShell进行远程操作。 2、主库配置 修改MySQL配置文件(/etc/my.cnf) #启用二进…

leetcode:1464. 数组中两元素的最大乘积(python3解法)

难度&#xff1a;简单 给你一个整数数组 nums&#xff0c;请你选择数组的两个不同下标 i 和 j&#xff0c;使 (nums[i]-1)*(nums[j]-1) 取得最大值。 请你计算并返回该式的最大值。 示例 1&#xff1a; 输入&#xff1a;nums [3,4,5,2] 输出&#xff1a;12 解释&#xff1a;如…

麒麟Kylin服务器版-破解root密码

一、单用户模式修改root密码 1.重启服务器系统后&#xff0c;将光标移动到第二项&#xff0c;按【e】键进入用户登录页面。 2.在【username】下方所在行输入root名称&#xff0c;【password】下方所在行输入密码Kylin123123后&#xff0c;进入编辑模式。代码如下&#xff1a; …

芯课堂 | MCU之TIMER精准延时

引言 华芯微特公司SWM系列单片机提供的TIMER个数和功能有些微差别&#xff0c;为了让您更加简单的使用这一功能&#xff0c;下面小编将以SWM190为例&#xff0c;给大家展示如何使用SWM系列产品的TIMER功能。 TIMER精准延时 一、TIMER简介 TIMER是一种定时器工具&#xff0c;…