
Qt学习笔记
QT学习中的一些积累
Leuuvi
努力做到:有输出的学习
展开
-
QT程序打包中碰到:Qt5Core.dll,和 Qt5Gui.dll报错,运行不了打包EXE
QT程序打包中碰到:Qt5Core.dll,和 Qt5Gui.dll报错,运行不了打包EXE原创 2023-03-02 11:37:21 · 1698 阅读 · 1 评论 -
Qt中封装在QStyle里的内置图标
前言Qt内置图标封装在QStyle中,大概有70多个,可以用来美化丰富UI界面。但是Qt中只有图标的文字描述,想使用时无法精准找到,这篇文章运行出各图标,制作表格,便利下次使用查找。学习自:飞扬青云Qt开发经验代码 QPixmap icon = this->style()->standardPixmap(QStyle::SP_DesktopIcon); icon = icon.scaled(200,200,Qt::IgnoreAspectRatio); ui.原创 2021-10-22 15:21:36 · 842 阅读 · 0 评论 -
两个界面的信号和槽
前言在一个界面上获取数值,发送信号,跳转到另一个界面的槽,实现两个界面的交互,信息传递。学习自:Qt Creator 快速入门第三版 霍亚飞 编著例子为: 基类QWidget,主界面创建一个“Qt设计师界面类”,界面模板选择Dialog without Buttons,在对话框中输入数值,单击确定按钮时关闭对话框,并将输入的数值通过信号发射出去,主界面接收到信号,label显示数值。程序在mydialog.h中自定义信号:signals: void dlgReturn(in原创 2021-11-02 10:53:46 · 689 阅读 · 0 评论 -
Qt学习:属性系统
前言学习自:Qt Creator 快速入门第三版 霍亚飞 编著Qt提供了强大的基于元对象系统的属性系统。要在一个类中声明属性,该类必须继承自QObject类过程新建Widgets应用后,向项目中添加新C++类,类名为MyClass,基类选择QObject。在myclass.h中,声明前使用:Q-PROPERTY()宏,向原对象系统注册属性userName.Q_OBJECTQ_PROPERTY(QString userName READ getUserName WRITE se原创 2021-11-03 15:01:14 · 346 阅读 · 0 评论 -
Qt创建QtXlsx环境
引用QtXlsx路径QtXlsxWriter\src\xlsx1. 把QtXlsxWriter文件里的src文件里的xlsx文件复制到你的程序文件中;2. 在.pro项目文件中写入 include(xlsx/qtxlsx.pri)3.点击运行,或者构建,之后就可以使用QtXlsx库了,4.例如要使用QXlsx::Document xlsx;新建xlsx文件;头文件包含#include "xlsxdocument.h",就可以自由使用啦...原创 2022-04-21 16:51:15 · 476 阅读 · 0 评论 -
【QScreen】Qt中截图保存运行界面
Qt中截图保存运行界面获取屏幕QScreen *screen_test = QGuiApplication::primaryScreen();获取截图,可以自定义起始点和宽高,获取界面自己需要的部分,宽高-1是获取整个QPixmap pixmap_test = screen_test->grabWindow(this->winId(),0,0,-1,-1);保存图片,路径要双斜杠,且已存在,(路径如果不存在,不会自动创建文件夹,截图失败)pixmap_test.sa原创 2021-12-22 10:15:15 · 1759 阅读 · 2 评论 -
Qt中SpinBox突然获取不了值
之前可以通过ui->spinBox_up_dianji03->value();获取spinbox的值,突然出现问题ui -> 不会提示spinbox,也识别不了spinbox部件,百度了很多,也找不到问题请教同事,问题得以解决,这就是经验的重要性吧,佩服!解决办法构建,项目,概要里的shadow build 不要勾选,重新运行,问题解决。我的问题:之前是没有勾选的,但换笔记本调试的时候,里面的QT是默认勾选的,导致,我把文件复制到原电脑,打开,也默认...原创 2021-11-25 10:31:12 · 1744 阅读 · 0 评论 -
【QML】Property‘s
前言学习自:B站【英文字幕】Qt quick(QML)技术解读 入门到熟练学习性质property的一些常用的基本的用法,示例为写入按钮的Rec,Text,MouseA,和信号的property过程在项目添新文件AddNew,QML File,命名为MyButton,在main函数中直接写入MyButton的各种属性,不用加入Rec,MouseA和Text区域。1.首先把MyButton的Rec和Text属性写入main函数MyButton{ width: 1..原创 2021-11-10 11:46:37 · 450 阅读 · 0 评论 -
容器类_关联容器_例QMap
前言Qt提供了关联容器:QMap, QMultiMap, QHash, QMultiHash, QSet关联容器:容器存储的是 < 键,值 > 对,比如 QMap,所以称为关联容器Multi容器用来支持一键多个值的情况,QMap < Key, T>它提供了一个字典(关联数组),将Key类型的键值映射到T类型的值上,一般每一个键关联一个单一的值,QMap使用键顺序来存储它的数据;如果不关心存储顺序,那么可以使用QHash来代替它,因为QHash速度更快。过程头文原创 2021-11-09 10:25:15 · 806 阅读 · 0 评论 -
【QImage】【QtXlsx】传递QImage至线程xlsx保存
头文件#include "xlsxdocument.h"#include <QDebug>#include <QImage>#include <QGuiApplication>#include <QScreen>#include <QPixmap>主线程截图,截程序运行界面:(this->winId(),0,0,-1,-1);并把图片发送给xlsx线程,(注意:QImage是类似int的类型量)void Wi原创 2022-04-22 10:11:50 · 494 阅读 · 0 评论 -
【QtXlsx】在线程中写Excel的学习笔记
由于工程量大,担心在主线程把数据写入Excel,会导致界面卡顿,所以使用线程写ExcelQtxlsx创建环境,在另一篇笔记说明1.新建一个C++类,继承QObject,创建写Excel的线程ave_excel_thread = new excel_thread; mythread_excel = new QThread(this); save_excel_thread->moveToThread(mythread_excel); mythread_excel-&g原创 2022-04-21 16:58:35 · 676 阅读 · 0 评论 -
【QML】Rectangles的元素和性质
前言学习自:B站【英文字幕】Qt quick(QML)技术解读 入门到熟练初学qml,新建qml文件后,首先学习一下基本矩形Rectangles的常用元素和性质使用可选边框绘制填充矩形过程首先命名id(不要与其他重名)Rectangle{ id:blueRec}颜色color,宽度width,高度heightcolor: "red"width: 64height: 64渐变色gradient(从上到下)gradient: Gradie.原创 2021-11-09 15:07:08 · 352 阅读 · 0 评论 -
【qAbs】Qt中获取数据的绝对值
获取数据的绝对值,可以获取int ,double,float各种数据类型使用Qt中的 qAbs()函数,简简单单double i = -1.123;double i_value = qAbs(i);qDebug() << i_value;原创 2021-12-22 09:19:05 · 9880 阅读 · 0 评论 -
QTime学习笔记
QTime类的简单学习记录:用于测试时,计算测试总时间。1.包含QTime类#include <QTime>2.在头文件中声明QTime run_time;QTime run_buf;3.设置时间 t 为0:0:0,设置时,分,秒run_time.setHMS(0, 0, 0);4.每秒跳进循环把时间加上run_buf = run_time.addSecs(RunTime);//增加秒...原创 2022-04-21 14:18:35 · 718 阅读 · 0 评论 -
学习笔记:Qt程序打包发布
前言 使用qt开发自动化测试软件,一般是先在自己的办公电脑上写,后续再发给测试机运行,需要使用Qt程序打包生成exe程序。有两种方法:"Qt Widgets Application" 和 "Qt Quick Application",这里选择"Qt Widgets Application"方法。学习自:Qt程序打包发布方法(使用官方提供的windeployqt工具)_lxj434368832的博客-优快云博客_qt 打包步骤1.新建一个名为"hello"的Qt Widgets Appli.原创 2021-10-19 12:00:43 · 1023 阅读 · 0 评论 -
【QML】MouseArea
前言学习自:B站【英文字幕】Qt quick(QML)技术解读 入门到熟练MouseArea支持简单的鼠标操作过程鼠标操作区域,定位为小矩形内anchors.fill: blueRec设计模式看鼠标有效区域类似按钮信号槽操作, onClicked: { Qt.quit(); }点击有效区域,蓝色小矩形,执行触发函数:退出应用程序,执行有效。...原创 2021-11-10 09:52:08 · 462 阅读 · 0 评论 -
容器类_顺序容器_例QList
前言Qt提供了一些顺序容器:QList, QLinkedList, QVector, QStack, QQueue顺序容器:容器中的数据都是一个接一个线性存储的,所以称为顺序容器,QLinkedList: 需要使用一个链表时QVector: 希望数据项可以占用连续的内存空间QStack: 后进先出(LIFO)QQueue: 先进先出(FIFO)对于大多数程序而言,使用最多而且最好用的是QList, 这里使用QList 熟悉,其他几个容器可以参照进行操作,因为他们的接口函数相似,也原创 2021-11-08 17:48:05 · 560 阅读 · 0 评论 -
【QML】Text
前言学习自:B站【英文字幕】Qt quick(QML)技术解读 入门到熟练学习:指定如何将格式化文本添加到场景中 Text过程字体居中,文本编辑text,字体颜色 Text { anchors.centerIn: blueRec text: "Hello Baby" color: "white" }字体大小完全扩充,到上面矩形高度一样 font.pixelSize: blueRec...原创 2021-11-09 15:58:52 · 501 阅读 · 0 评论 -
fatal: pathspec ‘dianji_02‘ did not match any files
报错:Git 往git中添加文件 git add dianji_02时,报错fatal: pathspec 'dianji_02' did not match any files问题:.git 所在目录没有dianji_02这个文件,我的dianji_02是在.git所在目录下 dianji 目录下的解决方法:1. 执行 git add dianji,成功执行2. 点击打开到dianji目录下,git执行 git add dianji_02,成功执行...原创 2021-11-11 10:24:21 · 520 阅读 · 0 评论 -
写一个存储全局变量的类,用于多线程或多类之间的数据传递
在多线程或者多类的程序中,数据的传递要怎么实现?我遇到的情况:在界面类中与电机通信,而我把电机通信放在了“伺服线程”,那么,通过界面类发送 “读取电机速度” 信号后,写在主界面主线程的信号和槽函数connect()响应,跳转到“伺服线程”的读取电机速度函数中,读取速度寄存器的值;我的问题:界面类怎么获取读到的寄存器的值呢?解决办法:写一个存储全局变量的类,用于多线程或多类之间的数据传递。1. 新添加一个类:.h 和 .cpp2. 在.h文件的public中声明全局变量原创 2022-04-06 17:43:26 · 604 阅读 · 0 评论 -
元对象系统:动态类型转换qobject< *>()
前言学习自:Qt Creator 快速入门(第三版)霍亚飞 编著Qt中的元对象系统(Meta-Object System)对象间通信的信号和槽机制,运行时类型信息和动态属性系统。元对象系统还提供了其他特性:QMetaObject::className()可以在运行时以字符串形式返回类名,QObject:inherits()函数返回一个对象是否是QObject继承树上一个类的实例信息;QObject::tr()和QObject::trUtf8()进行字符串编译来实现国际化;QObj原创 2021-11-04 15:55:34 · 1417 阅读 · 0 评论 -
Qt学习:对象树与拥有权,销毁delete对象
前言学习自:Qt Creator快速入门(第三版) 霍亚飞 编著当创建了QObject对象时,如果使用了其他对象作为父对象(parent),那么这个QObject会被添加到父对象的children()列表中;当父对象被销毁,这个QObject也会被销毁。过程新建Widgets应用,选择Widget,添加C++类,类名为MyButton,基类设置为QPushButton。在mybutton.h中,添加析构函数的声明,#include <QPushButton>clas原创 2021-11-04 15:05:24 · 484 阅读 · 0 评论