- 博客(62)
- 资源 (2)
- 收藏
- 关注
原创 no matching function for call to ‘xxx::connect(....
在使用QObject::connect时,遇到信号或槽函数存在多个同名函数,导致报错:多个信号无法匹配槽函数
2025-03-03 11:42:11
130
原创 C++ 多线程锁
创建时可以不锁定(通过指定第二个参数为std::defer_lock),而在需要时再锁定。条件变量需要该类型的锁作为参数(此时必须使用unique_lock)jion 阻塞式, .join()后面的代码等待线程结束。作用域规则同 lock_grard,析构时自动释放锁。创建即加锁,作用域结束自动析构并解锁,无需手工解锁。std::defer_lock (必须手动加锁)std::adopt_lock (必须先加锁)detach 非阻塞式, 后面代码继续执行。不能中途解锁,必须等作用域结束才解锁。
2023-11-23 10:33:43
207
原创 QML Image、AnimatedImage 加载 Gif动图
Image、AnimatedImage 加载 Gif动图,以及AnimatedImage加载Gif是否缓存会导致的问题。
2023-11-21 16:16:19
768
原创 Qml使用cpp文件的信号槽
SerialPort CurrrntThread = QThread(0xfcc9f0, name = “串口线程”) // serial.sendMsg(“TTTT”)运行的线程。SerialPort CurrrntThread = QThread(0x24ce850) // serial.say() 函数运行的线程。qml: button text: Cancle // 打开串口失败,取消OK按钮,默认Cancle按钮被点击打印。
2023-11-21 09:55:52
494
原创 Qt http
*1.请求报文:请求报文是由客户端发送给服务器,用于请求特定资源或执行特定操作。它由以下几个部分组成:请求方法:指定了客户端希望服务器执行的操作,如GET、POST、PUT、DELETE等。请求目标:表示客户端希望访问的资源路径,可以是绝对路径或相对路径。协议版本:指定所使用的HTTP协议的版本,如HTTP/1.1。请求头:包含了关于请求的附加信息,格式为键值对。常见的请求头字段包括:Host:指定请求的目标主机。User-Agent:标识发送请求的客户端应用程序。
2023-11-20 18:03:02
518
原创 QMenuBar和QToolBar使用同一个QAction
将qmenubar中的action添加到qtoolbar中,而不是在toolbar中重复添加action
2023-11-17 09:47:24
291
原创 qt+opengl 着色器VAO、VBO、EBO(四)
注意此处的layout(location = 0)和layout(location = 1),对应下文解析数据时的参数。顶点着色器从矩阵中读取颜色,通过"out vec3 mcolor;将(二、2)中paintGL()函数的如下代码替换注释。用到的矩阵:坐标矩阵(包含坐标和颜色)、索引矩阵。//片段着色器2 接收顶点着色器输出的颜色。用到的坐标矩阵, 四个四边形顶点坐标。
2023-11-14 11:32:05
848
原创 qt+opengl(一)
说明:在opengl中,坐标的数值在[-1, 1],且从上到下(y)、从左到右(z)、从高到低(z)的坐标值是从1到-1的。
2023-11-06 08:36:48
807
原创 qt opengl 绘制点、线、三角形、多边形(二)
0x0000// 点0x0001// 直线线段,按添加点的顺序,每2个点组成一条线段0x0002// 直线线段,按添加点的顺序,相邻的两个点连接,且第一个点与最后一个点也连接(多边形)0x0003// 与GL_LINE_LOOP类似,区别在于 第一个点与最后一个点 不 连接0x0004// 按添加点的顺序, 每3个点组成三角(面)0x0005// 三角(面) ,区别见后面代码演示0x0006// 三角(面),区别见后面代码演示0x0007//0x0008//0x0009。
2023-11-06 08:34:43
1910
原创 QObject: Cannot create children for a parent that is in a different thread
【代码】QObject: Cannot create children for a parent that is in a different thread。
2023-11-01 11:01:48
962
原创 qml: ReferenceError: serial is not defined
qml编译警告:qrc:/Form02.qml:67: ReferenceError: serial is not defined。解决办法:先设置串口对象在根节点中的。
2023-09-11 17:21:29
701
原创 C++ 回调函数
2.定义一个带参的回调函数(注释部分是普通回调函数,不用定义第一步里的函数指针)3.不带参或者是固定值或使用全局变量的使用(注释部分同上解释)1.定义一个函数指针。
2023-09-11 16:47:36
294
原创 __attribute__
是GCC编译器提供的一种扩展语法,用于指定变量、函数、类型等的属性。可以用于指定变量的对齐方式、函数的调用约定、类型的大小等属性,从而对程序的性能、可移植性等方面进行优化。
2023-06-15 16:49:06
445
原创 QFtp编译
QFtp编译打开源码修改头文件(不然编译会报错)打开qftp.proCONFIG += staticCONFIG -= shared改成CONFIG -= staticCONFIG += shared也就是+ - 号互换位置4. 编译生成文件linux下:*.a文件为.lib文件windows下:MSVC生成的也是.lib文件。此处使用的mingw编译,生成的是.a文件。6. 将Qt5Ftp.prl、Qt5Ft
2022-12-05 14:50:39
921
原创 libpng warning: iCCP: known incorrect sRGB profile
libpng warning: iCCP: known incorrect sRGB profile
2022-07-11 08:56:59
619
原创 qtxlsx读写 excel
系列文章目录Qt 读取Excel表格数据 生成Excel表格并写入数据文章目录系列文章目录前言一、QtXlsx的编译?二、使用步骤1.引入库2.读数据3. 写数据前言相较于QAxObject读写excel,qtxlsx的使用更方便,而且不会因为excel驱动的问题导致读取失败。一、QtXlsx的编译?网上关于QtXlsx源码编译库的文章很多,在这不做多余赘述。二、使用步骤1.引入库代码如下(示例):QT += core gui xlsx // .pro#in
2022-04-20 11:26:39
3362
4
原创 QTreeWidget遍历父节点
void TabWidget_1::on_checkBox_2_stateChanged(int arg1){ if(arg1 != 0) { QAbstractItemModel* model = ui->treeWidget->model(); if(model->rowCount() <= 0) return; QTreeWidgetItem* item = nullptr; for (in.
2022-01-05 09:13:10
2868
原创 QCustomPlot 缩放拖动卡顿
在使用QCustomPlot缩放时,当缩放到所有数据点同时显示在窗口上时,再拖动图层时会十分卡顿,卡顿的代码:QCPGraph* _graph = m_plot->addGraph(); //添加图表_graph->setLineStyle(QCPGraph::lsStepLeft); //设置连线类型_graph->setPen(QPe
2021-11-22 17:31:09
2487
3
原创 QCustomPlot 多个坐标系
三个水平的坐标系,如图首先说明,本案列是直接继承QCustomPlot,如果是需要通过非继承方式,自行将其中的this关键字替换为QCustomPlot* X 的X;文中有些代码省略了this,自行判断。一、添加多个坐标系步骤如下:1.清空布局中默认的坐标系及其他控件 this->plotLayout()->clear();/* 在.h文件中定义好的需要使用的控件QCPAxisRect * A0_5; //坐标系 1QCPAxisRect * A0_50; //坐标系
2021-10-30 10:49:13
6879
47
原创 QListWidget 类似于组合按钮
之前记录过QPushButton添加图片文字,通过QButtonGroup实现多个按钮只有一个可以被同时选中,与之相比,QListWidget的使用更为简洁,例子如下:QListWidgetItem* lwItem2 = new QListWidgetItem(ui->listWidget);lwItem2->setIcon(QIcon(":/img/aio.png"));lwItem2->setText("AI");lwItem2->setTextAlignment(Qt:
2021-10-30 08:53:51
623
原创 qt 键盘事件
通常在写键盘事件时,以QPushButton为例:ui->pushbutton->setFocusPolicy(Qt::StrongFocus);protected: void keyPressEvent(QKeyEvent *event) override;void XXX::keyPressEvent(QKeyEvent *event){ if(event->key() == Qt::Key_Return || event->key() == Qt:
2021-10-25 16:45:07
889
原创 QLabel 文字阴影
QGraphicsDropShadowEffect* effect = new QGraphicsDropShadowEffect;effect->setColor(QColor(100,100,100,100));effect->setBlurRadius(2); //模糊半径effect->setOffset(10); //偏移量ui->label->setGraphicsEffect(effect);
2021-04-20 14:10:38
1035
原创 Qt 透明窗口
方法一:setWindowOpacity(0.5);窗体整体透明,部件也跟着一起透明,值为1时完全不透明方法二:如下,需要去掉标题栏,会导致一些正常的功能需要自己实现,且背景完全透明,所以需要重写void paintEvent(QPaintEvent *)setWindowFlag(Qt::FramelessWindowHint); //去掉标题栏setAttribute(Qt::WA_TranslucentBackground); //窗体背景透明void W.
2021-04-20 13:28:25
397
原创 SMTP 协议发送邮件
样式如图简单说明使用 SMTP 协议发送邮件需要通过所在邮箱开启这项协议才可以使用,如上述例子通过QQ 邮箱发给 126 邮箱,需要 QQ 邮箱开启 SMTP 协议,进入 QQ 邮箱-设置-账户-账户安全-POP3/SMTP 服务-点击开启即可。发件人邮箱我使用的是QQ邮箱,由于QQ邮箱在第三方登录需要输入授权码,在这里可以直接用授权码代替密码,QQ邮箱授权码: private: Ui::MainWindow *ui; QLabel *shouLabel; QL.
2021-03-16 13:36:50
1569
原创 DLL 获取网络连接状态
1.Win32 网络连接 dll 文件名叫:wininet.dll,位置在 C:\WINDOWS\system32 目录下,将其拷贝到项目工程下#include <QLibrary>#include <QLabel>#define INTERNET_CONNECTION_MODEM 1 //拨号#define INTERNET_CONNECTION_LAN 2 //局域网#define INTERNET_CONNECTION_PROXY 4 //代理上网#defi.
2021-03-16 13:15:43
505
原创 Qt 简单的视频播放器
1. 简述一个简单的视频播放器,包含暂停、停止、音量、播放时间、拖进等功能,界面未经过美化,纯功能例子2.简单分析2.1.视频播放器的两个主体播放器 QVideoWidget播放对象 QMediaPlayer2.2.播放对象的属性视频时长 duration() //return qint64 毫秒值当前播放的时长 position() //return qint64 毫秒值视频当前音量 volume() //return qint64 毫秒值是否
2021-03-12 16:51:58
4147
2
原创 qt 设置无边框窗口导致任务栏图标点击事件失效
将窗口设置成无边框窗口,用来重写重写窗口样式,一下代码就可实现:this->setWindowFlags(Qt::FramelessWindowHint );但是,这样会导致在点击桌面窗口栏程序图标时,程序界面无法实现正常的最大化和最小化,解决也很简单,如下:this->setWindowFlags(Qt::Window|Qt::FramelessWindowHint |Qt::WindowSystemMenuHint|Qt::WindowMinimizeButtonHint|Q.
2021-02-24 15:59:01
2210
5
原创 QTableView::setSpan: single cell span won‘t be added
在使用QTableWidget的 setSpan(row,column,rowCount,columnCount) 合并单元格时有时会遇到应用程序输出:QTableView::setSpan: single cell span won’t be added这个既不是报错也不是警告,算是一个提示。意思是:setSpan 不能合并单个单元格,也就是说setSpan中,rowCount > 1 || columnCount > 1,必须是2个单元格以上的单元格相合并。...
2020-12-18 16:13:47
2551
2
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人