- 博客(22)
- 问答 (1)
- 收藏
- 关注
原创 Qt 控件自适应电脑缩放
如果存在布局,可通过设置layoutStrech对控件进行比例设置。设置后,控件将会根据比例进行显示。如下图,设置1,1,那么当布局放大或者缩小后,两个控件将会一直保持分别占有布局一半的大小。传入控件100%下的大小,得到当前电脑缩放倍数下的像素大小。再对控件设置宽度和高度。通过代码获取当前电脑缩放倍数,并对控件大小根据倍率进行调整。
2024-08-07 20:27:31
278
原创 QString大小限制
经过搜索了解到,QString的大小限制为略低于2GB,也就是2的31次方字节。具体的值取决于体系结构,因为它取决于管理数据块所需的开销,但不超过32个字节。由于QString中每个字符使用两个字节,因此在一个QString中转换为不到2^30个字符。Qt容器中的内存不足情况是Qt抛出异常的唯一情况。请注意,操作系统可能会对持有大量已分配内存的应用程序施加进一步限制,尤其是大型连续块。使用QString过程中,偶然会出现运行软件崩溃,并且应用程序输出会抛出异常。
2024-08-07 20:03:20
125
原创 QLineEdit输入部分内容后提示且自动补齐功能
输入框有时当输入部分内容后,需要自动补全,提示包含输入内容的所有符合条件字符串。输入aNam,将所有相关的字符串均显示,且点击下方,输入框中内容会自动变为点击的字符串。
2024-03-07 10:36:22
440
原创 QML不进入断点问题
点击左侧菜单栏“项目”->点击构建和运行中的“运行”,查看右侧调试器的设置中的“启用QML”是否勾选,如果已勾选,则取消勾选,然后启动调试,然后再停止调试,停止调试后,再次勾选,再次调试程序就可以进入。最近刚接触QML,之前使用QWidget时都是可以正常调试的,但是qml中打了断点但却不进入。如果未勾选,则勾选上后再次调试;
2024-02-28 17:51:11
532
原创 Qml 学习记录1(持续补充)
什么时候用Item,就是你要做一个组件,这个组件是一个复合的组件,组件有部分是有显示项。这种情况下,就用Item。如果你的元素是作为一个整体,以后不需要变动和更改,那么就用Rectangle。RowLayout布局,自带了一个自适应的布局方式,比如填充满,然后比如元素的比例。如果一个行中只有部分元素的尺寸是已知的,那么可以考虑用此布局。什么时候用Row布局,当布局里面的所有元素的尺寸宽高都明确的时候,用Row布局,你可以精确细化到每个元素的宽高。##Row和RowLayout。
2024-02-26 16:32:51
383
原创 QLineEdit 的editingFinished()信号不触发问题
请注意,如果在行编辑上设置了 validator() 或 inputMask() 并按下了 enter/return,则仅当输入遵循 inputMask() 并且 validator() 返回 QValidator 时才会发出 editingFinished() 信号。看到其他人有说是因为不符合条件,所以没触发,但是既然设置了QValidator,输入框就会进行限制,不符合条件的就不能输入,且经过测试,我输入的值是符合条件的但是也是没触发信号,具体原因未知了。
2024-02-01 16:00:53
632
原创 QMutexLocker导致程序卡死
QMutexLocker 的作用域是{}内部,所以slotReadConfirmed()函数中对handleData()也进行了加锁,执行虚函数handleData时并没有解锁,而handledata是在窗口类中执行的,而弹窗刚好是在handledata中弹出,所以handledata阻塞,那么slotReadConfirmed也被阻塞,即通讯线程被阻塞,所以run函数中的while(true)循环不再进入。解决方案:不适用QMutexlocker,使用lock()和unlock()函数即可。
2024-01-19 11:20:44
571
原创 Qt 鼠标穿透
比如项目中有一个需求,需要在一个窗口上(包含操作按钮)显示提示信息。正常情况下,如果提示信息窗口(QLabel/QWidget)覆盖到操作窗口上,那么将不能点击下面窗口的按钮。这时如果设置了鼠标穿透,那么鼠标点击事件将会透过上层的提示窗口,直接到操作窗口。项目中,有时需要透过某个窗口来响应鼠标点击事件。
2024-01-09 17:06:21
788
原创 Qt串口数据分段处理
正常情况下,一帧数据会一次性全部发完,这时候我们直接在QSerialPort::readyRead 信号的槽函数里readAll(),然后对读取到的串口数据进行处理即可。但是有的时候,一帧数据可能被分成多段进行发送,这时候我们就需要等待一帧数据读取完成后再进行处理。由于对于我这个项目的协议定义,数据帧的第二位和第三位共同组合成数据帧长度且低字节在前。下面为我处理的方案,onReadyRead()为readyRead的槽函数。
2023-12-29 17:48:04
701
原创 Qt 修改标题栏图标
参考博客:https://blog.csdn.net/sinat_41752325/article/details/128605210。项目中发现并未对QMessageBox设置标题栏图标,但是却不是默认的图标。最终发现在pro文件中进行了设置,在此记录。
2023-12-20 18:25:58
439
原创 QTableView调用selectRow()后选中行不可见问题
先调用selectRow(),行数为不是实际要选中的行号,再调用selectRow,参数为实际要选中的行号即可。即先选中其他行,再选中正确的行数即可。在调用selectRow后,再调用scrollTo()跳转到选中行。
2023-12-11 18:18:14
755
原创 QTableView 设置不可编辑
项目中发现QTableView双击后,会进入编辑状态,之前有接触过对指定item设置不可编辑(QStandardItem *item;item->setEditable(false)),但是现在是针对整个表格。
2023-11-29 16:06:18
1456
原创 QSettings childGroups()排序
但是使用过程中发现,iID到达10后,就无法递增了。调试后,发现listAllKeys并不是按写入文件中的顺序返回的。最终处理方案,对listAllKeys进行排序即可。项目中需要用到ini文件,并且节是逐个递增的。处理方式为获取到childGroups(),然后取最后一个,再对其进行++
2023-11-29 15:55:03
567
原创 QCustomPlot自适应图像rescaleAxes()接口功能优化
上修改后的源码,对源码的rescale接口做了修改,增加了是否为y轴的判断。如果是y轴自适应时,预留十分之一。
2023-11-18 14:27:17
706
原创 QCustomPlot实现鼠标移到曲线上,显示坐标点(支持多条曲线)
本文的整体思路为:在鼠标移动事件中,对鼠标所在的点进行判断,该点的x、y是否在距离曲线的2的像素点范围内,如果在,则显示符合条件的曲线坐标(注意:只能显示往曲线中加入的点信息,即addData、setData,并不是所有的点都能显示出来。如果知道曲线的方程,则可以直接将点带入方程判断是否符合)近期需要实现这个需求,所以进行了研究,共有三种方案,在此记录,初步写了实现,代码还有很多可以优化的地方。有什么问题请大家指出。此方案只实现了针对一幅图的方案,并未和方案一一样,多个曲线判断。
2023-11-17 14:48:06
2142
原创 QCustomPlot rescaleValueAxis()自适应轴函数会随着图像的增大而越来越慢
最近在做一个项目,定时获取下位机数据进行绘图,但是发现随着开始的时间越来越久,绘制的函数越来越耗时。最终经过定位,发现rescaleValueAxis()会越来越耗时。但是目前还没有找到合适的解决方案,欢迎大家探讨…
2023-07-29 17:30:34
448
原创 快速修改图片背景色
快速修改图片背景色说明今天,突然给我安排了一个工作是修改公司logo的背景色为黑色。我是搞上位机的,对于这方面也不是很熟悉,就百度应该如何修改。第一次尝试首先百度的方法是通过PC端的美图秀秀来进行抠图。因为公司logo不可能是一个整体(证件照会好一点),单单是选择哪些应该作为背景色就比较浪费时间。还有更生气得是,抠完图后进行保存居然需要会员!美图秀秀的会员!!!啊啊啊。。。最终解决办法最后,找了半天,用了简单的excel便完成了背景色更换。步骤介绍1.首先,在excel中插入图片,然后对图片
2020-07-24 17:55:21
370
空空如也
Qt嵌入第三方窗口后,Qt上层窗口的透明效果以及圆角效果无效
2022-07-21
TA创建的收藏夹 TA关注的收藏夹
TA关注的人