Qt基础编程

article/2025/9/28 10:08:14

什么是Qt

Qt就是c++的一种跨操作系统平台的可视化开发工具

 qt5.15.2的下载

下载安装链接

安装过程中出现network error while......时的解决办法

创建项目

application是什么

application应用程序

作用

QApplication---界面应用入口

也就是 只要是要建立界面的QT项目都需要QApplication应用程序。

链接

exec()进入时间循环和消息处理

函数

QApplication a(argc, argv); 

argc和argv是命令行传进去的参数。比如linux里输入一个命令
cp file.c file1.c
那么argc=3 argv就是上面那行字符串数组。
因为图形编程有时也需要从命令行传递参数给程序,所以才会有argc和argv。

QT命令行参数

QT高分屏处理

高分屏---高分辨率屏幕

分辨率--链接

如果QT界面不做自适应分屏处理,当这个项目运用在不同的dpi屏幕上时就会出现界面混乱的问题-----链接

注意,QApplication::setAttribute(Qt::AA_EnableHighDpiScaling);一定要加在QApplication创建 之前。

 可以创建的应用程序类型

基类的选择

三种窗口区别链接

QMainWindow基类创建的窗口

QWidget基类创建的窗口

 对话框基类窗口

 如何自动创建UI文件

什么是ui文件

用户界面文件  user interface

在中国文件里进行图形设置编程。

在生成的窗口中生成一个ui指针,这个是做什么的

 explicit关键字的作用

抑制了隐式转换,也就是不能使用“=”给类赋值,在这里就是为了防止对基类的初始化发送在派生类的构造函数内部,explicit关键字就要求派生类对基类的初始化必须在初始化列表中进行。

看它的类型,不就是本界面的一个指针对象吗

在main文件中创建一个mainwindow界面,mainwindow中有一个mainwindow的指针,然后再通过ui对象的setupUi函数把当前对象赋给ui指针,这样,就可以通过ui指针使用当前对象的属性进行设置了。

QT creator编译和调试工具

qt中的类模块

比如gui模块,sql数据库模块

文件关联

使用到特定的模块的时候怎么将指定的模块加入到本项目中

项目文件.pro

 加入类模块

 图形化界面文件.ui

.ui文件中设计的ui界面是怎么和其他文件建立连接关系的----ui_X.h文件

刚建立项目时没有这个文件,编译运行之后会自动生成,才可以打开

这里的X和窗口文件的文件名相同,这里是widget

 

这个文件在编译之后会生成GUI图形界面对应的代码

 Ui::Widget

widget.h中的Ui::widget只有声明

ui_widget.h中的Ui::widget完成定义

有些资料会说这两个不同文件里的ui::widget是两个不同的类,但是实际上是同一个类,只是在widget中先声明使用,在ui_widget.h中进行定义而已,如果不是这样,那第一个Ui::widget没有定义,怎么给定义的ui指针分配内存呢 

利用完成定义的Ui::widget给ui创建对象

ui控制着两部分内容

1,通过图形化界面转换的ui_widget.h中的代码;

2,通过setupUi()传递本窗口对象,让ui实现对这个对象的控制。 

类对象窗口实现的原理

其实,真正的窗口组件就是自己建立的那个类,这个类窗口通过两部分来实现:

1,自己编代码实现,

2,通过ui->setupUi()将这个类窗口发送给ui_x.h文件,系统通过ui文件将图形化组件以及功能翻译为代码,设置在传递过去的类对象窗口中。

信号和槽

什么是信号和槽

connect(发送对象,信号,接收对象,槽函数),Qt4版本中发送信号和槽函数需要用 SIGNAL() 和 SLOT() 来进行声明。

本质是什么

发送对象

就是发送信号的对象,比如按钮。

信号

就是特定的对象发送的事件,比如按钮发送的clicked(),本质上是一个函数。

接收对象

就是接受信号,并执行相应槽函数的对象,比如窗口。

槽函数

 信号和槽的规则

信号连接信号的时候,作为槽函数位置的信号会被触发

如果receiver是this表示什么

表示接受信号的对象是本窗口组件。

如果省略receiver表示什么

connect(ui->pushButton_todayPrice,&QPushButton::clicked,[=](){ui->stackedWidget->setCurrentIndex(0);
});

 利用lambda表达式实现槽函数

不需要接收对象,直接执行槽函数

QT4的信号和槽的连接的优缺点--SIGNAL,SLOT

1,可以直接传递函数以及参数,不用函数指针。

 2,缺点:编译阶段不会进行参数类型检查,运行阶段才会检测出来报错。

有SIGNAL,必须要有SLOT,也就是这两个必须同时使用

ui文件怎么设置信号和槽

1,直接连接

2,转到槽函数

右键转到槽

比如将PushButton转到槽函数,就是选择这个按钮作为发射信号的对象,选择好信号的类型之后就会为中国信号建立一个槽函数。

在UI界面进行的信号和槽的建立不需要自己去连接信号和槽。

自定义信号和槽

信号

槽函数

各种信号的功能和区别

信号翻译功能使用对象
clicked()点击按钮
clicked(bool)
triggered()触发菜单项,工具栏,快捷键
triggered(bool)

信号有bool和没有bool参数的原因和区别

像按钮,菜单项这些组件checkalbe属性默认都是false,所谓的checkable属性就是触发这些对象的时候,会给信号函数传递一个bool类型的值,表示这个对象的状态,默认都是false,也就是默认组件的状态不可以改变,如果要改变,可以通过setCheckable(true)成员函数改变,改变之后,这个组件传递的状态就会一次true,一次false.

控件的属性

cheakable

有可选和不可选两种状态。

按钮电机会返回true,false两两种状态值

 isCheckable和isChecked

isChecked记录按钮是否被选中,选中返回1,取消返回0;

isCheckable记录的是按钮是否可以被选中;

setCheckable

setCheckable()设置按钮是否可选状态

QT怎么打印输出字符串

qt中不能使用cout,要用qDebug()函数

注意:

1,qDebug输出完所有数据之后会自动换行

2,qDebug()每一个“<<”都会输出一个空格

Qt中的字符串

Qt中的字符串对象是QString


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

相关文章

Qt入门使用Qt编写程序详细全过程

1、 双击打开Qt 2、 点击文件&#xff08;F&#xff09; 3、 选择新建文件或项目 4、 选择Application 5、 选择Qt Widgets Application 6、 点击choose 7、 输入项目名称&#xff08;英文&#xff09; 8、 点击下一步 9、 点击下一步 10、 点击完成 11、 一个没有…

Qt编程基础:认识常用的基本类型

前言 上一节已经成功创建了一个Qt项目&#xff0c;接下来就是要在创建好的项目中&#xff0c;添加自己想要的功能。在写代码之前&#xff0c;我们需要掌握Qt的一些基础知识。 语法部分就不用讲了&#xff0c;这系列文章是对有C或C语言基础的同学展开的&#xff0c;如果一点编…

[QT入门篇]编程基础知识

一、坐标体系 在 Qt 中窗口的显示是需要指定位置的&#xff0c;这个位置是通过坐标来确定的&#xff0c;所有坐标的选取都是基于坐标原点来确定的&#xff0c;Qt的坐标原点在窗口的左上角。 在一个 Qt 窗口中一般都有很多子窗口内嵌到这个父窗口中&#xff0c;其中每个窗口都有…

QT高级编程之QT基本概览

QT高级编程 主要从以下几个方面来介绍QT高级编程&#xff0c;并介绍QT相关的概念。 1、 QT部件Widget&#xff1b; 2、 QT信号与槽机制&#xff1b; 3、 对象树关系&#xff1b; 4、 布局管理&#xff1b; 5、标准对话框以及自定义对话框&#xff1b; 6、文件与目录&#xff…

QT5编程入门教程(非常详细)

Qt 是一个跨平台的 C 框架&#xff08;C库&#xff09;&#xff0c;目前最新的版本是 Qt5。Qt5 还包含了很多小版本&#xff0c;其中推荐 Qt5.6 或 Qt5.9&#xff0c;这两个版本是 LTS 版本&#xff08;即长期支持版本&#xff09;&#xff0c;Bug较少&#xff0c;相对稳定。 Q…

取模和与运算的一点关系

与n取模其实就是和n-1相与 当然是在二进制基础上 在HashMap的 先高16位异或低16位再取模运算 取模运算转化成位运算公式:a%(2^n) 等价于 a&(2^n-1),而&操作比%操作具有更高的效率

负数的与运算

计算机中的位运算是基于补码的。正数的原码反码补码相同&#xff0c;而负数有一些差别。 如&#xff1a; 7的补码为0111 -7的补码为1001。其计算过程为先算出7的原码0111&#xff0c;按位取反得1000&#xff0c;在加上1得1001。这个步骤也是其他负数计算补码的方式。 示例&…

数与运算

数学是研究数与运算的一门科学&#xff0c;数和运算都是人类根据自然界的客观规律抽象出来的&#xff0c;人们利用抽象的假定去研究更高层次客观规律&#xff0c;再利用这些客观规律解决自然界中出现的问题&#xff0c;这就是数学学科的用途。 数学中的数由什么组成的&#xff…

C/C++:与运算、或运算、异或运算、指针

前言忘记进制的同学先看这里&#xff1a; 十进制数&#xff0c;没有前缀 二进制数&#xff0c;前缀是0b 八进制数&#xff0c;前缀是0o 十六进制数&#xff0c;前缀是0xlet decimalInteger 17 let binaryInteger 0b10001 // 二进制的17 let octalInteger 0o21 …

“”是什么含义?与运算入门级讲解;什么是与运算?

与运算&#xff08;AND&#xff09;是计算机中最基础、最常用的一种逻辑运算&#xff0c;也被称为按位与&#xff08;Bitwise AND&#xff09;运算。它是指在二进制数中&#xff0c;对两个二进制数的每一位进行逻辑与操作&#xff0c;只有当两个二进制数的对应位都为1时&#x…

数字电路三种基本逻辑运算关系:与运算、或运算、非运算

1、基本概念 1.逻辑常量与变量&#xff1a;逻辑常量只有两个&#xff0c;即0和1&#xff0c;用来表示两个对立的逻辑状态。逻辑变量与普通代数一样&#xff0c;也可以用字母、符号、数字及其组合来表示&#xff0c;但它们之间有着本质区别&#xff0c;因为逻辑变量的取值只…

二进制与运算、或运算、非运算

与运算 "与"运算是计算机中一种基本的逻辑运算方式&#xff0c;符号表示为&&#xff0c;运算法则为遇0得0。也就是说只要有0&#xff0c;结果即为0。 举例 或运算 "或"运算符号表示为|&#xff0c;运算法则为遇1得1。也就是说只要有1&#xff0c;结…

​二进制运算符:(与运算)、|(或运算)、~(取反运算)、^(异或运算)、位移运算符​

说明 所有的位运算符操作的都是二进制&#xff0c;而不是我们日常生活中常用的十进制。 在系统中&#xff0c;一个字节占8位。 按位与运算符&#xff08;&&#xff09; 参加运算的两个数据&#xff0c;按二进制位进行“与”运算。 运算规则&#xff1a;如果两个二进制…

第三章 运算方法与运算器

文章目录 定点补码加减法运算补码加减法运算方法溢出及检测溢出检测操作数与运算结果的符号位是否一致最高位的进位和符号位的进位是否一致变形补码 补码加减法的逻辑实现 移码加减运算及实现逻辑移码的加法运算移码加减法的溢出判断直接采用移码运算的溢出判断方法采用双符号判…

2019做报表用什么软件:报表类型,产品推荐

在大数据时代&#xff0c;报表可以帮助我们从海量数据中挖掘有用的数据&#xff0c;选择软件做什么就变得尤为重要。选择什么类型的软件进行报表?推荐哪些报表产品?本文请一位专业的数据分析师&#xff0c;介绍选择报表软件的经验。 ……阅读更多&#xff0c;请戳原文链接&am…

免费报表软件有哪些?5款热门工具

在企业管理过程中&#xff0c;报表往往都会通过一些简洁的图表方式&#xff0c;为大家呈现所有的数据。报表软件&#xff0c;可以在操作的过程中有效提升工作效率&#xff0c;所以有很多企业早就已经选择跟随信息技术的潮流&#xff0c;选择报表软件工具。很多人也一直都在关注…

分享几款好用免费的报表软件_报表软件推荐

Smartbi Insight Smartbi Insight&#xff08;企业报表平台&#xff09;以中国式报表、多维度分析、可视化仪表盘为核心&#xff0c;满足报表需求的功能以“真Excel”为特色&#xff0c;将Office Excel和WPS表格变为企业级WEB报表设计器&#xff0c;表格样式与计算逻辑的灵活性…

JimuReport积木报表 v1.5.8版本发布—免费的数据可视化报表

项目介绍 一款免费的数据可视化报表&#xff0c;含报表和大屏设计&#xff0c;像搭建积木一样在线设计报表&#xff01;功能涵盖&#xff0c;数据报表、打印设计、图表报表、大屏设计等&#xff01; Web 版报表设计器&#xff0c;类似于excel操作风格&#xff0c;通过拖拽完成报…

报表开发流程

报表开发是数据分析师的常见工作之一。报表是业务监控必备工具之一(用数据说话)&#xff0c;另一方面&#xff0c;报表监控的指标通常都是业务相关的重要指标&#xff0c;做报表的过程也是深入了解业务的过程。 把数据分析分为“描述、解释、预测、控制”4个层级。那么报表开发…

免费报表工具 - RDP报表工具

公司一直用ireport&#xff0c;后来偶然在一个报表QQ群里&#xff0c;看到了有人发RDP报表工具链接&#xff0c;一开始就以为是广告&#xff0c;都没敢点&#xff0c;要知道现在有太多骗子&#xff0c;后来看到群里有人问问题&#xff0c;又截了一些图&#xff0c;才敢放心点进…