Qt平时遇到的疑难点
文章平均质量分 58
记录工作、学习中遇到的Qt难点、坑等
荆楚闲人
老骥伏枥,志在千里;烈士中年,壮心不已。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
QTableWidget、QTableView设置行高、列宽不起效果的解决办法
今天在一个很小的显示屏上部署Qt程序,程序用QTableWidget显示数据,但出现了垂直滚动条,客户说数据不是很多,滚动条最好不要显示。这是因为调用setRowHeight设置的行高值比QTableWidget、QTableView默认行高值还小,如果不人为调整默认行高值,则设置的行高值不起作用。原创 2025-11-16 16:29:20 · 693 阅读 · 0 评论 -
QWidget::paintEngine: Should no longer be called错误情况总结
目录1. 错误情况描述2. 错误原因2.1.绘图代码不在QWidget::paintEvent(QPaintEvent *event)函数内 当用QPainter绘图时,如果使用不当,Qt会报如下错误提示:原创 2025-11-01 11:35:47 · 542 阅读 · 0 评论 -
QTableWidget表头列名过长换行问题解决
现实需求经常会遇到QTableWidget表头列名过长,特别是列很多的时候,用户需要滚动滚动条很长时间才能看到最后一列,而更狗血的是:很长的列名所在的单元格的内容长度很短,显得很不人性化,如下就是列名很长,列很多的情况:列头的列名如何换行?原创 2025-09-14 10:08:34 · 588 阅读 · 0 评论 -
QtCreator无代码智能提示的解决方法
在菜单栏选择“帮助”->“关于插件”子菜单,弹出如下对话框,取消勾选ClangCodeMode。原创 2025-06-29 15:54:06 · 547 阅读 · 0 评论 -
qt报“use multi-arg instead [clazy-qstring-arg]”警告的解决方法
你可以使用Qt Creator中的Clazy静态分析工具来验证警告是否已被解决。的重载版本,允许一次性传递多个参数,从而避免多次临时内存分配。是一个由Clazy静态代码分析工具发出的警告,它提示开发者在使用。在修改代码后,重新编译项目并运行,确保修改后的代码功能正常,并且。都会创建一个新的临时对象,这不仅影响性能,还可能增加内存碎片。会一次性处理两个参数,从而避免了中间临时对象的创建。的情况,这可能会导致不必要的临时内存分配。对象,然后这个临时对象再调用。方法时,存在多个连续调用。在这个修改后的版本中,原创 2025-04-22 14:30:17 · 998 阅读 · 0 评论 -
设置QCustomPlot坐标格式为日期时间格式(yyyy-MM-dd hh:mm:ss)
【代码】设置QCustomPlot坐标格式为日期时间格式(yyyy-MM-dd hh:mm:ss)原创 2024-12-24 18:49:40 · 1071 阅读 · 2 评论 -
改变QDateTimeEdit中的星期几导航栏背景色
【代码】改变QDateTimeEdit中的星期几所在区域背景色。原创 2024-12-23 16:16:40 · 530 阅读 · 1 评论 -
QCoreApplication::processEvents用法及耗时操作导致界面冻结卡死问题解决
可以看到有两个重载函数,且都是QCoreApplication静态成员函数,第二个函数多了超时时间参数,基本同第一函数功能类似。原创 2025-01-10 14:46:44 · 2051 阅读 · 0 评论 -
QCustomPlot实现鼠标跟随显示xy坐标值
话不多说时间匆忙直接步入正题,本博主要介绍qt用QCustomPlot实现曲线绘制然后 鼠标放在曲线上能实时显示坐标,之前研究这块,网上也有一些参考例程,但总的来说可参考的 文章 还是很少,所以这里就在多分享一章,贡献一份力量。好了,以上就是实现的全部代码了,放上两种效果图,一种是xy坐标显示分开,一种是在一起的,程序中都有相应的部分,只需打开相应的注释和注释相应的内容,就可以分别实现这两种方式了。转载 2024-12-26 18:41:37 · 1569 阅读 · 0 评论 -
将QComboBox下拉项中的文本居中、居右
QComboBox下拉项中的文本默认是居左的,如下:有时需要将下拉项中的文本居中、居右。如何实现?原创 2024-07-08 12:32:46 · 2099 阅读 · 0 评论 -
QBrush的setColor函数不能改变画刷颜色的原因及解决方法
如果是QBrush brush;即不带任何参数默认构造出的画刷,其默认属性为Qt:noBrush。若设置为noBrush,之后修改这个brush的颜色,是无法被更改的,不能使用setColor语句修改其颜色。若希望实现画刷从无填充到有填充的转换,可以申明的时候把画刷的属性设置为透明色,然后再调用setColor语句修改其颜色,即像上面的最后一种方法那样。本意是想绘制一个红色矩形,但结果是矩形没有被红色填充,画刷根本就没起作用。原创 2024-06-17 14:27:36 · 617 阅读 · 0 评论 -
Qt实现程序单实例运行(只能运行1个进程)及QSharedMemory用法
在开发时,经常遇到这样的需求或场景:程序只能被启动一次,不能启动多次,启动多次会导致混乱,如:可执行程序用到文件指针、串口句柄等。试想如果存在多个同一个文件的句柄或同一个串口的句柄,就可能在同一时刻对同一文件或串口进行写操作,这样会导致文件内容杂乱、损坏;现实中,当一个串口被一个程序占用时,另外一个程序尝试打开这个串口会报错,因此需要控制程序运行时只能开启一个实例,如果用Qt实现程序单实例运行?原创 2024-06-06 19:19:06 · 1193 阅读 · 0 评论 -
Qt封装ping命令并将ping结果显示到界面
【代码】Qt封装ping命令并将ping结果显示到界面。原创 2024-05-23 19:18:06 · 1310 阅读 · 0 评论 -
Qtcreator断点进入Disassembler(反汇编程序)界面的问题解决
这个问题的原因是工程源码存放的目录含有中文,解决方法是将工程源码放到一个不含中文路径的目录,然后再断点调试,该问题不再出现。无论怎么调试,死活是上面的界面。原创 2024-05-23 18:51:20 · 2417 阅读 · 0 评论 -
QSplineSeries和QLineSeries区别及QSplineSeries点超过坐标轴最大范围问题说明
该类是折线图表类,用来将相邻的两个数据点通过直线连接。原创 2024-05-21 19:15:56 · 1685 阅读 · 0 评论 -
QTableView通过setColumnWidth改变列宽无效的问题解决
框架,如果对Qt的“模型/视图/委托”框架不懂,本博文很难读懂。读者本机Qt安装目录下的Examples\Qt-XX.XX.XX\widgets\itemviews目录下有很多model/view framework的例子,可以进行自学了解,其中XX.XX.XX为Qt的版本号,如:5.14.1。在开发中,需要设置QTableView、QTableWidget控件的列宽,但通过QTableView类的setColumnWidth函数设置列宽,发现不起作用。原创 2024-04-24 19:17:41 · 2020 阅读 · 4 评论 -
删除QWidget中的所有布局和组件
原文链接:https://blog.youkuaiyun.com/ouyangxiaozi/article/details/134106609。4、QLayout::removeWidget(QWidget *widget) 可将某个组件从布局中移除。3、QLayout::itemAt(int index) 可根据索引获取相应的子项;2、QLayout::count() 可获取布局内的子项数量,包括子布局和子组件;1、调用QWidget::layout()可获取组件的布局;转载 2024-03-28 11:46:42 · 944 阅读 · 1 评论 -
QToolButton的工具提示出现自身border-image背景图的问题解决
用QToolButton贴个图片,用来做个指示灯,当鼠标移动到指示灯,弹出工具提示,以便提示该灯用来干嘛的。即样式表加入类名限定符QToolButton就可以了。QToolButton的第1种样式。QToolButton的第2种样式。原创 2024-03-26 19:13:47 · 387 阅读 · 0 评论 -
qt使用Windows经典风格,以使QTreeView或QTreeWidge有节点线或加号
其中a为上面定义的QApplication对象。原创 2024-03-18 13:50:29 · 1025 阅读 · 0 评论 -
鼠标在QTreeView、QTableView、QTableWidget项上移动,背景色改变
本博文用到了Qt的model/view framework框架,如果对Qt的“模型/视图/代理”框架不懂,本博文很难读懂。如果不懂这方面的知识,请在Qt Assistant 中输入Model/View Programming 学习了解。读者本机Qt安装目录下的Examples\Qt-XX.XX.XX\widgets\itemviews目录下有很多model/view framework的例子,可以进行自学了解,其中XX.XX.XX为Qt的版本号,如:5.14.1。原创 2024-03-11 17:25:24 · 1914 阅读 · 0 评论 -
QTreeView、QTableView、QTableWidget等类不发送entered信号问题解决
因为都是从QAbstractItemView继承,故本博文所说的技术点也适用于这些类,本博文以QTableView类来讲解。原创 2024-03-11 16:38:02 · 1033 阅读 · 0 评论 -
通过setPos设置QGraphicsItem在场景中的坐标位置不起作用的问题解决
这句代码,无论把坐标改为啥值,项在场景的位置都不变,即通过setPos函数更改项在场景的坐标位置无效果。解决方法是:在ui->graphicsView的类CGraphicsView中的构造函数中加入。类,类名为CGraphicsView的类对象。其中ui->graphicsView为派生自。原创 2024-02-20 14:57:11 · 1178 阅读 · 0 评论 -
svg图片构造QGraphicsSvgItem对象耗时很长的问题解决
【代码】svg图片构造QGraphicsSvgItem对象效率很慢的解决方法。原创 2024-02-18 10:41:42 · 868 阅读 · 0 评论 -
从QObject类及非QObject类实现多继承,需把QObject放在继承链最前面
【代码】从QObject类及非QObject类实现多继承,需把QObject放在继承链最前面。原创 2024-01-19 16:34:25 · 857 阅读 · 0 评论 -
用C++QT实现一个modbus rtu通讯程序框架
具体的数据处理将根据需求进行扩展和实现,如写入数据和处理异常等。另外,需要根据实际情况设置正确的串口参数和设备地址,并确保与Modbus设备的正确连接。在编译和运行程序之前,还需要在项目的.pro文件中添加QT+=serialport以启用QtSerialPort模块。转载 2024-01-17 09:22:21 · 1961 阅读 · 4 评论 -
qtcreator一次性加载多个项目
有时一个软件系统由一个主程序,很多so或dll工程构成,每次打开qtcreator一个一个pro工程往qtcreator加,当项目很多时,很费时间、很麻烦,虽然qtcreator提供了sessions,可以一次打开上次加载的所有工程,但sessions不能在不同机器、不同人之间共享,只能保存个人的。用过Visual Studio的童鞋,就知道VS有解决方案,一个解决方案文件可以挂接很多VS的工程,每次打开VS的解决方案,就一次性将所有VS的工程都打开了。如何一次性在qtcreator就能打开所有工程?原创 2024-01-10 19:38:16 · 1397 阅读 · 0 评论 -
connect信号槽的异步性导致多线程中的数据被更改及Qt::BlockingQueuedConnection作用
因为业务需求,需要利用子线程向主线程发送数据。像这种子线程和主线程进行数据交互时,一般都是通过Qt的信号槽机制来实现。原创 2023-12-18 11:05:24 · 2000 阅读 · 0 评论 -
QIntValidator或QDoubleValidator详解及范围无效问题解决
QLineEdit自带的setValidator包含 QIntValidator, QDoubleValidator, QRegularExpressionValidator。但在使用过程中,QIntValidator和QDoubleValidator在限制整数或者小数时无法正确应用。原创 2023-12-09 11:59:52 · 6696 阅读 · 0 评论 -
QT creator 或VS代码中有中文,提示常量中有换行符解决方案
提示常量中有换行符qt程序时,经常报错“常量中有换行符”导致无法编译成功。转载 2023-12-02 16:26:40 · 1256 阅读 · 0 评论 -
在Qt设计师(Qt Designer )控件面板加入自定义控件
然后一直单击“下一步”直到完成。原创 2023-11-14 19:28:00 · 4281 阅读 · 1 评论 -
无标题栏的Qt子窗体在父窗体中停靠时,如何做到严丝合缝
造成第2节提到的问题的原因是:开发人员以为窗体去掉了标题栏,标题栏就不占据平面区域了。由于业务的要求,需要从父窗体弹出一个子窗体,该子窗体无标题栏,且该子窗体要停靠到父窗体右下角。这个看似很容易的问题,细研起来其实不容易!从上图可以看到,子窗体在停靠时,子窗体底边没有完全挨着父窗体的底边,还存在不小的间隙呢!如何让子窗体的底边完全挨着父窗体的底边,做到严丝合缝?下面代码,在CUavGuarMainWnd窗体创建了子窗体m_pFunOperPanel,可以看到:子窗体底边完全挨着父窗体的底边,严丝合缝了。原创 2023-11-14 16:17:47 · 667 阅读 · 6 评论 -
将VS工程转为Qt的pro工程及VS安装Qt插件后没有create basic .pro file菜单问题解决
很多小伙伴包括本人,如果是在Windows下开发Qt程序,偏好用Visual Studio外加装个Qt插件进行Qt开发,毕竟Visual Studio确实是功能强大的IDE,但有时需要将编写好的Qt工程移植到非Windows平台开发,这时就需要用到Qtcreator。现在的问题是:如何非人工地自动将Visual Studio的工程.vcxproj转为Qtcreator识别的pro工程呢?原创 2023-11-10 17:55:32 · 7057 阅读 · 2 评论 -
QWidget样式表或背景图片在Qt Designer 中能显示但运行时不显示的解决方法
Qt Designer 中能显示证明图片的路径是正确的,不显示肯定其它问题导致的。今天想在QWidget中贴一张png图片作为背景图,在Qt Designer 能显示,但运行时,死活不显示背景图片。其中Widget为QWidget的子类。原创 2023-11-10 08:57:13 · 7873 阅读 · 2 评论 -
VS的Qt插件、Qt、QtCreator安装包及源码官网下载地址
Index of /archive/qt原创 2023-11-03 19:09:38 · 677 阅读 · 0 评论 -
Qt实现三次样条Cardinal曲线
在设计矢量图案的时候,我们常常需要用到曲线来表达物体造型,单纯用鼠标轨迹绘制显然是不足的。于是我们希望能够实现这样的方法:通过设计师手工选择控制点,再通过插值得到过控制点(或在附近)的一条平滑曲线。在这样的需求下,样条曲线诞生了。简而言之,样条曲线是由多个多项式按比例系数组成的多项式函数,而比例系数是由控制点决定的。原创 2023-10-16 11:30:12 · 958 阅读 · 0 评论 -
Qt中以qRegister开头的几个函数的用法说明
Qt中以qRegister开头的几个函数的用法说明原创 2023-06-14 19:17:51 · 1860 阅读 · 0 评论 -
将Qtcreator编译器、调试器等配置为MSVC2017/2019
将Qtcreator编译器、调试器等配置为MSVC2017/2019原创 2023-06-13 19:24:13 · 7094 阅读 · 0 评论 -
Qt中以Q_DECLARE开头的几个宏的用法说明
Q_DECLARE开头的几个宏的用法说明原创 2023-05-30 18:22:58 · 3239 阅读 · 0 评论 -
QStringLiteral、QLatin1String作用及性能总结
QStringLiteral、QLatin1String用法总结原创 2023-04-09 09:59:29 · 4475 阅读 · 1 评论 -
将含有中文的QString转为std::string不乱码的方法
将含有中文的QString转为string不乱码的方法原创 2023-03-28 15:38:13 · 1476 阅读 · 0 评论
分享