QT学习备份

2023年1月2日09:00:32
1.信号/槽编辑器
发送者:控件
信号:是控件发出的信号
接受者:包含控件的容器
槽:程序上用slot标识的方法

2.Q_OBJECT宏
只有继承了QObject类的类,才具有信号槽的能力。所以,为了使用信号槽,必须继承QObject。
凡是QObject类(不管是直接子类还是间接子类),
都应该在第一行代码写上Q_OBJECT。不管是不是使用信号槽,都应该添加这个宏。
这个宏的展开将为我们的类提供信号槽机制、国际化机制以及 Qt 提供的不基于 C++ RTTI 的反射能力。
因此,如果你觉得你的类不需要使用信号槽,就不添加这个宏,就是错误的。其它很多操作都会依赖于这个宏。
这个宏应该放在头文件中。
Q_PROPERTY()是一个宏,用来在一个类中声明一个属性property,
由于该宏是qt特有的,需要用moc进行编译,故必须继承于QObject类。
PS.qt特有的需要用moc编译,并且必须继承QOBJECT类

3.在构造控件的函数中,写connect
connect(timer, SIGNAL(timeout()), this, SLOT(updateValue()));
timer:控件或者是会发出信号的类
SINAL(timeout):信号
SLOT(updateValue()):槽,自定义的方法、
this是接收者
PS.如果用了connect,在ui里面就看不到了

slots = Q_SLOTS
signal = Q_SIGNALS
PS.互换后没发现区别

5.换页控件
Stacked widget

串口
#include “qextserialport.h”
TCP
#include “qtcpsocket.h”
QTimer 定时器类

7.QStringList
QStringList baudList;
baudList << “50” << “75” << “100” << “134” << “150” << “200” << “300” << “600” << “1200”
<< “1800” << “2400” << “4800” << “9600” << “14400” << “19200” << “38400”
<< “56000” << “57600” << “76800” << “115200” << “128000” << “256000”;

8.全局变量写法
class AppData
{
public:
//全局变量
static QStringList Intervals;
static QStringList Datas;
static QStringList Keys;
static QStringList Values;
}

控件必须指定父容器

函数QObject::connect()将“关闭”按钮btn的clicked() 信号同窗口pWidget的close() 槽关联起来。
QObject::connect()函数中,实参btn是发信号的源对象指针,实参pWidget是接受信号的目标对象指针;
clicked()信号和close()槽已经分别由Qt的QPushButton类和QWidget类定义了,
所以无需事先声明和定义就可以直接使用;
SIGNAL()和SLOT()是Qt定义的两个宏,
它们返回其参数的C风格字符串(const char *)。->即返回所调用的字符串

a)必须要包含头文件的情况
1.A继承C,A类的头文件中必须要包含C的头文件;
2.A中包含C类的成员变量,A类的头文件中必须包含C的头文件;
3.A中的inline函数中引用到了C类的成员,A类的头文件必须包含C的头文件;
b)可以用类的前置声明代替头文件的情况
1.A中包含C类的指针成员或引用成员;
2.A中声明的函数的参数或返回值是C的变量(C类型,C指针类型,C引用类型);

12.layout必须用指针
Layout->setSpacing(60) 设置控件间间隙
ayout->setMargin(40) 设置layout到两边边缘

2023年1月4日09:17:41
1.槽函数不能加参数?
A:不是,要求信号和槽的签名一致

2.内建窗口可以静态调用也可以实例调用
QWidget::palette()获取一个窗口部件的调色板
QPalette::WindowText:窗口部件的前景色
QPalette::Base:文本输入窗口部件的背景色
QPalette::Text:和
qApp->processEvents();用于保证时间循环还可以处理其他事件

3.普通控件(非布局控件)和内建窗口都需要先指定父类

4.qdebug<<something 可以显示到输出窗口

5.不允许使用不完整类型->需要添加对应的头文件

6.一个信号和多个槽关联的情况下,当发出该信号的时候,
与该信号关联的各个槽以任意的先后顺序立即执行
(即槽函数的执行顺序是随机的,与槽关联的顺序没有关系)

需要关联的信号和槽的签名必须是等同的,
即信号的参数类型和参数个数与接受该信号的槽的参数类型和参数个数相同;

深拷贝:完整复制品(副本)
浅拷贝:引用复制(引用)

8.qrc文件
用于添加资源,比如说一些图标,图片这些
1.添加前缀
2.添加文件,文件最好复制到qrc源路径下的文件夹
3.看Qurl是什么,在程序上可以直接引用

9.伙伴编辑模式:
可以在设计器中建立QLabel和其他窗口部件的伙伴关系
PS.仅用于QLabel部件
QLineEdit* priceLineEdit = new QLineEdit(this);
QLabel* priceLabel = new QLabel(“&Price”,this);
priceLabel->setBuddy(priceLineEdit)
PS.当按下标签的快捷键(在字符前面加前缀&)的时候->会跳到其伙伴身上

QSizePolicy:尺寸策略
Fix 不会发生任何的伸缩
minimum 推荐的大小是它的最小尺寸,它不会变得更小,但是可以变得更大
maximum 推荐的大小是它的最大尺寸,不会变得更大
preferred 推荐大小为优先选择,可以变大或者变小
expanding 能够感知到推荐的大小,但是会以尽可能大的空间来放置窗口部件
ignore 不能感知到推荐的大小,会以尽可能大的空间来放置窗口部件

2023年1月5日09:08:49
1.QFrame容器重新组织窗口部件,可修改布局
PS.相当于放进抽屉

2.QDir可以返回应用程序所在目录的绝对路径

3.单一继承方式需要通过成员ui来引用Qt设计器中部署的窗口不见,
而在多继承方式中可以直接引用这些窗口部件

4.QFileDialog::getExistingDirectory(this,
tr(“choose searched path”),
QDir::currentPath(),
QFileDialog::ShowDirsOnly);查找文件夹

5.严格命名槽可以直接关联信号->void on_<窗口部件名>_<信号名>(<信号参数>);

6.用vs来编程,对应的控件,需要加上ui.前缀才能找到,否则在connect的时候会报错

2023年1月11日09:43:25
1.
form.ui文件编译后,会生成头文件
form.h里面的widget类,多继承这个头文件里面的类,就能实时刷新变量
class QTGUI : public QMainWindow,public Ui_QTGUIClass

2.参数 parent,指定了窗口部件的父窗口部件,
如果parent = 0(默认值),新建的窗口部件将是一个窗口;
否则,新建的窗口部件是parent的子窗口部件(是否是一个窗口还需要第二个参数决定),
如果新窗口部件不是一个窗口的话,它将会出现在父窗口部件的界面内部。

3.菜单是小部件,是QAction->actNew,需要连接槽函数
connect(actNew,SIGNAL(trigged()),this,SLOT(doNew()))

2023年1月12日11:36:46
1.Qt提供了QFile类来进行文件操作。
为了更方便地处理文本文件和二进制文件,
Qt还提供了QTextStream类和QDataStream类。
处理临时文件可以使用QTemporaryFile,获取文件信息可以使用QFileInfo,
处理目录使用QDir。监视文件和目录变化则可以使用QFileSystemWatcher。2023年1月2日09:00:32
1.信号/槽编辑器
发送者:控件
信号:是控件发出的信号
接受者:包含控件的容器
槽:程序上用slot标识的方法

2.Q_OBJECT宏
只有继承了QObject类的类,才具有信号槽的能力。所以,为了使用信号槽,必须继承QObject。
凡是QObject类(不管是直接子类还是间接子类),
都应该在第一行代码写上Q_OBJECT。不管是不是使用信号槽,都应该添加这个宏。
这个宏的展开将为我们的类提供信号槽机制、国际化机制以及 Qt 提供的不基于 C++ RTTI 的反射能力。
因此,如果你觉得你的类不需要使用信号槽,就不添加这个宏,就是错误的。其它很多操作都会依赖于这个宏。
这个宏应该放在头文件中。
Q_PROPERTY()是一个宏,用来在一个类中声明一个属性property,
由于该宏是qt特有的,需要用moc进行编译,故必须继承于QObject类。
PS.qt特有的需要用moc编译,并且必须继承QOBJECT类

3.在构造控件的函数中,写connect
connect(timer, SIGNAL(timeout()), this, SLOT(updateValue()));
timer:控件或者是会发出信号的类
SINAL(timeout):信号
SLOT(updateValue()):槽,自定义的方法、
this是接收者
PS.如果用了connect,在ui里面就看不到了

slots = Q_SLOTS
signal = Q_SIGNALS
PS.互换后没发现区别

5.换页控件
Stacked widget

串口
#include “qextserialport.h”
TCP
#include “qtcpsocket.h”
QTimer 定时器类

7.QStringList
QStringList baudList;
baudList << “50” << “75” << “100” << “134” << “150” << “200” << “300” << “600” << “1200”
<< “1800” << “2400” << “4800” << “9600” << “14400” << “19200” << “38400”
<< “56000” << “57600” << “76800” << “115200” << “128000” << “256000”;

8.全局变量写法
class AppData
{
public:
//全局变量
static QStringList Intervals;
static QStringList Datas;
static QStringList Keys;
static QStringList Values;
}

控件必须指定父容器

函数QObject::connect()将“关闭”按钮btn的clicked() 信号同窗口pWidget的close() 槽关联起来。
QObject::connect()函数中,实参btn是发信号的源对象指针,实参pWidget是接受信号的目标对象指针;
clicked()信号和close()槽已经分别由Qt的QPushButton类和QWidget类定义了,
所以无需事先声明和定义就可以直接使用;
SIGNAL()和SLOT()是Qt定义的两个宏,
它们返回其参数的C风格字符串(const char *)。->即返回所调用的字符串

a)必须要包含头文件的情况
1.A继承C,A类的头文件中必须要包含C的头文件;
2.A中包含C类的成员变量,A类的头文件中必须包含C的头文件;
3.A中的inline函数中引用到了C类的成员,A类的头文件必须包含C的头文件;
b)可以用类的前置声明代替头文件的情况
1.A中包含C类的指针成员或引用成员;
2.A中声明的函数的参数或返回值是C的变量(C类型,C指针类型,C引用类型);

12.layout必须用指针
Layout->setSpacing(60) 设置控件间间隙
ayout->setMargin(40) 设置layout到两边边缘

2023年1月4日09:17:41
1.槽函数不能加参数?
A:不是,要求信号和槽的签名一致

2.内建窗口可以静态调用也可以实例调用
QWidget::palette()获取一个窗口部件的调色板
QPalette::WindowText:窗口部件的前景色
QPalette::Base:文本输入窗口部件的背景色
QPalette::Text:和
qApp->processEvents();用于保证时间循环还可以处理其他事件

3.普通控件(非布局控件)和内建窗口都需要先指定父类

4.qdebug<<something 可以显示到输出窗口

5.不允许使用不完整类型->需要添加对应的头文件

6.一个信号和多个槽关联的情况下,当发出该信号的时候,
与该信号关联的各个槽以任意的先后顺序立即执行
(即槽函数的执行顺序是随机的,与槽关联的顺序没有关系)

需要关联的信号和槽的签名必须是等同的,
即信号的参数类型和参数个数与接受该信号的槽的参数类型和参数个数相同;

深拷贝:完整复制品(副本)
浅拷贝:引用复制(引用)

8.qrc文件
用于添加资源,比如说一些图标,图片这些
1.添加前缀
2.添加文件,文件最好复制到qrc源路径下的文件夹
3.看Qurl是什么,在程序上可以直接引用

9.伙伴编辑模式:
可以在设计器中建立QLabel和其他窗口部件的伙伴关系
PS.仅用于QLabel部件
QLineEdit* priceLineEdit = new QLineEdit(this);
QLabel* priceLabel = new QLabel(“&Price”,this);
priceLabel->setBuddy(priceLineEdit)
PS.当按下标签的快捷键(在字符前面加前缀&)的时候->会跳到其伙伴身上

QSizePolicy:尺寸策略
Fix 不会发生任何的伸缩
minimum 推荐的大小是它的最小尺寸,它不会变得更小,但是可以变得更大
maximum 推荐的大小是它的最大尺寸,不会变得更大
preferred 推荐大小为优先选择,可以变大或者变小
expanding 能够感知到推荐的大小,但是会以尽可能大的空间来放置窗口部件
ignore 不能感知到推荐的大小,会以尽可能大的空间来放置窗口部件

2023年1月5日09:08:49
1.QFrame容器重新组织窗口部件,可修改布局
PS.相当于放进抽屉

2.QDir可以返回应用程序所在目录的绝对路径

3.单一继承方式需要通过成员ui来引用Qt设计器中部署的窗口不见,
而在多继承方式中可以直接引用这些窗口部件

4.QFileDialog::getExistingDirectory(this,
tr(“choose searched path”),
QDir::currentPath(),
QFileDialog::ShowDirsOnly);查找文件夹

5.严格命名槽可以直接关联信号->void on_<窗口部件名>_<信号名>(<信号参数>);

6.用vs来编程,对应的控件,需要加上ui.前缀才能找到,否则在connect的时候会报错

2023年1月11日09:43:25
1.
form.ui文件编译后,会生成头文件
form.h里面的widget类,多继承这个头文件里面的类,就能实时刷新变量
class QTGUI : public QMainWindow,public Ui_QTGUIClass

2.参数 parent,指定了窗口部件的父窗口部件,
如果parent = 0(默认值),新建的窗口部件将是一个窗口;
否则,新建的窗口部件是parent的子窗口部件(是否是一个窗口还需要第二个参数决定),
如果新窗口部件不是一个窗口的话,它将会出现在父窗口部件的界面内部。

3.菜单是小部件,是QAction->actNew,需要连接槽函数
connect(actNew,SIGNAL(trigged()),this,SLOT(doNew()))

2023年1月12日11:36:46
1.Qt提供了QFile类来进行文件操作。
为了更方便地处理文本文件和二进制文件,
Qt还提供了QTextStream类和QDataStream类。
处理临时文件可以使用QTemporaryFile,获取文件信息可以使用QFileInfo,
处理目录使用QDir。监视文件和目录变化则可以使用QFileSystemWatcher。

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

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

相关文章

uniapp实现蓝牙自动连接并获取心电图(代码篇)

我们最近的项目是需要写一个app和公司设备通过蓝牙连接&#xff0c;并且获取到心电图&#xff0c;这次是实现自动的&#xff0c;用户在第一次的时候需要点击连接蓝牙实现自动连接&#xff0c;后续更是不需要点击直接获取心电图&#xff0c;直接上代码&#xff0c;供大家参考&am…

【管理咨询宝藏118】集团公司人力资源共享服务中心建设方案

本报告首发于公号“管理咨询宝藏”&#xff0c;如需阅读完整版报告内容&#xff0c;请查阅公号“管理咨询宝藏”。 【管理咨询宝藏118】集团公司人力资源共享服务中心建设方案 【格式】PDF版本 【关键词】人力资源、共享服务、顶级咨询 【核心观点】 - 本项目立足集团公司的人…

学生信息管理系统(静态版)

系统的主界面 系统的操作指令 结构体的创建 目录 1、学生信息的输入 2、学生信息的添加 3、学生信息的删除 4、学生信息的查找&#xff0c;找到并显示 *判断查找函数3和4和5共用 5、学生信息的修改 6、显示学生的信息 7、学生成绩的排序,并打印(代码中有快排和冒…

智慧冶金:TSINGSEE青犀AI+视频技术助力打造高效、安全的生产环境

一、建设背景 冶金行业因其特殊的生产环境和工艺要求&#xff0c;对安全生产、环境保护以及质量监控等方面有着极高的要求。因此&#xff0c;将视频智能监控技术引入冶金行业&#xff0c;不仅有助于提升生产效率&#xff0c;更能有效保障生产安全&#xff0c;降低事故风险。 …

Python + adb 实现打电话功能

前言 其实很多年前写过一篇python打电话的功能&#xff0c;链接如下&#xff1a; Python twilio 实现打电话和发短信功能_自动发短信代码-CSDN博客 今天由于工作需要&#xff0c;又用python写了个关于打电话的小工具&#xff0c;主要是通过ADB方式实现的 实现过程 1.先利用…

计算机图形学入门02:线性代数基础

1.向量&#xff08;Vetors&#xff09; 向量表示一个方向&#xff0c;还能表示长度&#xff08;向量的摸&#xff09;。一般使用单位向量表示方向。 向量加减&#xff1a;平行四边形法则、三角形法则。比卡尔坐标系描述向量&#xff0c;坐标直接相加。 1.1向量点乘&#xff08;…

图片怎么批量重命名从1到50?这3个方法一键改名

图片怎么批量重命名从1到50&#xff1f;图片批量重命名从1到50的过程不仅提高了我们处理大量图片文件的效率&#xff0c;还大大简化了命名过程&#xff0c;让我们能更加有条理地管理和存储图片。通过使用各种专业的工具和方法&#xff0c;我们可以轻松实现图片文件的自动化命名…

光纤网络发展(光缆主动监测系统解决方案)

随着光缆网络规模的迅速扩大&#xff0c;如何提高网络运营效益就显得尤为重要。一方面需要及时掌握网络的运行状况&#xff0c;在发生劣化或故障时&#xff0c;能够准确定位&#xff0c;缩短排障历时&#xff1b;同时&#xff0c;一条光缆从设计、施工到维护&#xff0c;积累了…

聊聊异常处理及try-catch-finally块的作用

异常处理&#xff08;Exceptional Handling&#xff09;&#xff0c;又称为错误处理&#xff0c;是编程语言或计算机硬件中用于处理软件或信息系统中出现的异常状况的一种机制。这些异常状况通常指的是超出程序正常执行流程的某些特殊条件。异常处理提供了处理程序运行时出现的…

服务器上创建搭建gitlab

一、下载与安装 在主目录操作~ 1.使用wget下载 wget --no-check-certificate https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-14.0.1-ce.0.el7.x86_64.rpm 可以在开源软件镜像站选择合适的版本&#xff0c;版本不同页面菜单会稍有差异&#xff0c;此次选…

新人学习笔记之(函数1)

一、函数的概念 1.在JS里面&#xff0c;可能会定义非常多的相同代码或者功能相似的代码&#xff0c;这些代码可能需要大量重复使用 2.虽然for循环语句也能实现一些简单的重复操作&#xff0c;但是比较有局限性&#xff0c;此时我们就可以使用JS中的函数 3.函数&#xff1a;就是…

MongoDB CRUD操作:投影Project详解

MongoDB CRUD操作&#xff1a;投影Project详解 文章目录 MongoDB CRUD操作&#xff1a;投影Project详解返回文档的全部字段返回指定的字段和_id字段不输出_id字段指定排除的字段返回内嵌文档中的指定字段禁止内嵌文档中的特定字段数组中内嵌文档的投影聚合表达式的投影字段 默认…

拉取代码报错: SSL certificate problem: self signed certificate

问题描述&#xff1a; 使用SmartGit工具clone项目时&#xff0c;弹出框提示信息为“XXXX&#xff0c;SSL certificate problem: self signed certificate” 问题分析&#xff1a; 提示信息为SSL认证失败&#xff0c;可以关闭SSL的认证 解决方案&#xff1a; 在windows的命…

【Git】Git命令

原文链接&#xff1a;https://github.com/Wscats/CV/issues/31 新建 创建一个新的 git 版本库。这个版本库的配置、存储等信息会被保存到.git 文件夹中 # 初始化当前项目 $ git init# 新建一个目录&#xff0c;将其初始化为Git代码库 $ git init [project-name]# 在指定目录创…

go mod包管理与应用,常见错误排查方法

go mod包管理 go 中 包管理使用go mod 进行包管理 go mod init 项目名称 go mod init myproject_go生成的go.mod中有 module myproject_go 创建目录go_service 其下有两个go文件&#xff0c;go_request.go go_write.go . 根目录下有main.go入口文件。于是项目结构类似于&…

10.时间片调度

一、简介 时间片调度主要针对优先级相同的任务&#xff0c;当多个任务的优先级相同时&#xff0c;任务调度器会在每 一次系统时钟节拍到的时候切换任务&#xff0c;也就是说 CPU 轮流运行优先级相同的任务&#xff0c;每个任务运 行的时间就是一个系统时钟节拍。 二、相关实…

Percona Toolkit 神器全攻略(实用类)

Percona Toolkit 神器全攻略&#xff08;实用类&#xff09; Percona Toolkit 神器全攻略系列共八篇&#xff0c;前文回顾&#xff1a; 前文回顾Percona Toolkit 神器全攻略 全文约定&#xff1a;$为命令提示符、greatsql>为GreatSQL数据库提示符。在后续阅读中&#xff0c;…

Linux完整版命令大全(十四)

od(octal dump) 功能说明&#xff1a;输出文件内容。语  法&#xff1a;od [-abcdfhilovx][-A <字码基数>][-j <字符数目>][-N <字符数目>][-s <字符串字符数>][-t <输出格式>][-w <每列字符数>][--help][--version][文件...]补充说明&…

【吊打面试官系列】Java高并发篇 - 怎么唤醒一个阻塞的线程?

大家好&#xff0c;我是锋哥。今天分享关于 【怎么唤醒一个阻塞的线程&#xff1f;】面试题&#xff0c;希望对大家有帮助&#xff1b; 怎么唤醒一个阻塞的线程&#xff1f; 如果线程是因为调用了 wait()、sleep()或者 join()方法而导致的阻塞&#xff0c;可以中断线程&#xf…

2024年618网购节各大电商超级红包二维码集合

一年一度的电商618网购节又要来了&#xff0c;下面收集了淘宝/京东/拼多多的618红包二维码&#xff0c;手机扫描或识别即可每天领红包&#xff0c;可参考好物分享中的商品下单&#xff1a; 淘宝618超级红包&#xff1a;即日起至2024.6.10&#xff0c;每天可领一次 京东618无门…