QT
文章平均质量分 59
brave_heart_lxl
这个作者很懒,什么都没留下…
展开
-
【C++】类中有指针类型的成员变量
如果一个类中有指针类型的成员变量,就要在构造函数中new动态分配内存,也需要在析构函数中delete释放内存。C++的2.6.2节。原创 2023-02-08 10:13:14 · 258 阅读 · 0 评论 -
QT 编译报错 invalid use of incomplete type class Ui::Login
解决方法是在其对应的ui文件中,整个界面的ObjectName没有进行更改,打开其对应的ui文件,果然发现objectname还是原始的form,将其ObjectName更改为Login即可。编译始终报错:invalid use of incomplete type class Ui::Login,啥情况,该包含的ui_.h文件也包含了,也setup了,流程一个都不少,真扎心,难道一上午辛辛苦苦弄得login.ui文件白费力,要重新弄不带UI的吗?报上面的问题,说明Ui::Login编译器不认识。原创 2023-02-02 15:07:54 · 1589 阅读 · 3 评论 -
sql之left join、right join、inner join的区别
换句话说,左表(A)的记录将会全部表示出来,而右表(B)只会显示符合搜索条件的记录(例子中为: A.aID = B.bID).很明显,这里只显示出了 A.aID = B.bID的记录.这说明inner join并不以谁为基础,它只显示符合条件的记录.仔细观察一下,就会发现,和left join的结果刚好相反,这次是以右表(B)为基础的,A表不足的地方用NULL填充.left join是以A表的记录为基础的,A可以看成左表,B可以看成右表,left join是以左表为准的.B表记录不足的地方均为NULL.原创 2022-11-28 14:24:52 · 174 阅读 · 0 评论 -
Qt延时处理的四种方法
这种方法不会阻塞当前线程,尤其适合Qt的单线程带UI程序,或者UI线程,因为线程阻塞时,很明显的现象就是UI卡死。可以延时,但也会阻塞线程。它可以使得程序在while等待期间,去处理一下本线程的事件循环,处理事件循环最多100ms必须返回本语句,如果提前处理完毕,则立即返回这条语句。方法不会释放对象锁,其他线程无法访问对象,因此会阻塞线程;创建子事件循环,在子事件循环中,父事件循环仍然是可以执行的。上述代码使程序延时10 s,但是这种方法也会阻塞线程。方法会释放对象锁,使得其他线程能够访问该对象。原创 2022-11-25 09:32:44 · 2826 阅读 · 0 评论 -
Qt之延时总结
不够频繁的话,显然可能会使GUI线程的响应变差,例如每500ms才被调用一次,那么GUI的事件循环就只能500ms才被处理一次,当然,这个问题可以通过设定processEvents()的第二个形参略微得到缓解,更好的做法是,保证被调的周期原创 2022-11-25 09:25:55 · 3827 阅读 · 0 评论 -
QT (USBor其它)串口通信的实现方法
如果用qt写程序作为上位机,然后通过和usb和下位机通信的时候,就需要用到qt中的串口通信了。本文介绍了QT串口通信的实现方法,感兴趣的小伙伴们可以参考一下前言:如果用qt写程序作为上位机,然后通过和usb和下位机通信的时候,就需要用到qt中的串口通信了。使用qt中的串口通信的时候需要用到的两个头文件分别为:12除了加上面两个头文件之外,还需要在工程文件中加下面一行代码:1我们一般都需要先定义一个全局的串口对象,记得在自己的头文件中添加上:1。原创 2022-11-19 12:19:13 · 1117 阅读 · 0 评论 -
串口、Modbus通信协议
Modbus通信协议:Modbus通信协议分为MODBUS RTU,MODBUS ASCII和MODBUS TCP三种模式。MODBUS RTU,MODBUS ASCII所用的物理硬件接口都是串行(Serial)通讯(RS232,RS422,RS485)。所以我的理解是这两者的区别是,串口是一种硬件连接方式,可以看成是硬件。Modbus是一种数据传输协议,可以看成是软件。前段时间项目中接触到了这几个知识点,所以记录一下,因为研究的也不深入,所以有什么问题还请大家帮忙提出来,共同进步。原创 2022-11-19 12:07:20 · 1798 阅读 · 0 评论 -
分辨率和屏幕尺寸以及界面的绝对坐标
说点题外话:屏幕的最大分辨率取决于显示的性能和显示器的性能,比如显卡能显示的最大分辨率是1920 x 1080,但是显示器能支持的最大分辨率是 1024 x 768 (这个分辨率是以前旧显示器的常用分辨率),那么你只能设置当前分辨率为 1024 x 768;屏幕的显示是以一个个的点构成的,比如同样的显示器,分辨率为1920 x 1080,那就是宽度上有 1920个显示点,当然要比 1024 x 768 的1024个显示点要精细,显示效果要好了的。不能是屏幕越大越好,要屏幕越大分辨率也要跟着高才是好的。原创 2022-10-21 14:57:59 · 1263 阅读 · 0 评论 -
QT圆环图
4 用的是 Qt 中的命名空间声明,等效于圆环图中间有空,对应 #11,设置了中间孔的尺寸大小;另外,#21 设置了圆环图的显示主题,#22 设置的是图例的字体;其它代码,饼图的大同小异。原创 2022-10-20 16:00:40 · 382 阅读 · 0 评论 -
Qt提供的饼图QPieSeries类
对应不同类型的图表Qt提供了不同的系列,上面提到的曲线图QLineSeries、饼图QPieSeries、柱状图QBarSet等,系列处理负责存储访问数据,还提供了数据的绘制方法,比如折线图和曲线图分别对应QLineSeries和QSPLineSeries。不论是曲线QLineSeries、饼图QPieSeries、柱状图QBarSet还是其他类型的图标,其中展示的内容本质都是数据,在QtCharts(QT图标组件)中,这一组组的数据被称为系列。//设置该切片的pen属性, 即绘制该切片边框的钢笔。转载 2022-10-10 11:36:25 · 493 阅读 · 0 评论 -
Qt Ubuntu20.04出现段错误核心已转储问题解决方案--之core dump
修改成功后,按照网上的说法,再运行程序就会生成core文件,一般路径和可执行程序一个路径。我直接用echo "/home/boy/corefile/core-%e-%p-%t"> /proc/sys/kernel/core_pattern 进行修改,结果如图。//设置core文件的输出路径和输出文件名,这里我的路径是/home/boy/corefile,文件名就是后面的部分。我的系统是20.04,完全按照这篇文章搞定qt core dump,找到调试CORE文件的,并用GDB找到段错误。原创 2022-09-24 16:31:33 · 2253 阅读 · 0 评论 -
QT中多线程槽函数在哪个线程中执行?
也是代码中注释掉的 moveToThread(this)所做的就是将整个 thread 类移到次线程中,去掉注释,你会发现slot在次线程中运行。可以看到,主线程id和slot_main()中的线程id是一样的,槽函数的线程和主线程是一样的!所以thread类中的slot_main()是在主线程执行,run()函数是在次线程执行。主线程(信号)QThread(槽), 但由于没说槽函数是在主线程执行的,所以不少人都认为它应该是在次线程执行了。run函数中的代码时确定无疑要在次线程中运行的,那么其他的呢?原创 2022-09-05 11:55:29 · 445 阅读 · 0 评论 -
Linux Qt程序打包发布(转)
在这里插入图片描述将copylib.sh复制到NewPro/platforms文件夹中,运行:./copylib libqxcb.so命令,同样生成lib文件夹(这里是libqxcb的依赖库,若缺少,将触发“xcb”错误),将lib文件夹下所有文件拷到NewPro目录下,遇到文件冲突选择全部替换。在这里插入图片描述将整个imageformats目录复制到NewPro目录中即可,同时,如果有预加载图片,也要一并放入NewPro中,若以qrc的形式加载,也要将qrc文件目录放到NewPro中。转载 2022-09-03 09:42:49 · 978 阅读 · 0 评论 -
ubuntu开机自启动并且崩溃自启动程序/服务
参考ubuntu程序自启动:https://blog.csdn.net/u013894391/article/details/89405738。参考ubuntu程序自启动:https://blog.csdn.net/u013894391/article/details/89405738。原文链接:https://blog.csdn.net/u013894391/article/details/89406277。proc_name="your_bin_name" #你的要崩溃自启的程序名词。...原创 2022-08-09 15:33:45 · 661 阅读 · 0 评论 -
UBUNTU QT 使用GDB+CORE DUMP定位软件崩溃问题
core dump 叫做核心转储,它是进程运行过程中突然崩溃那一刻的内存快照.操作系统在程序发生异常并且异常在进程内部又没有被捕获的情况下,会把进程此刻内存、寄存器状态、运行堆栈等信息转储保存在一个core文件里.该文件也是二进制文件,可以使用gdb、elfdump、objdump或者windows下的windebug、solaris下的mdb进行打开分析里面的具体内容。...转载 2022-08-09 13:51:17 · 439 阅读 · 0 评论 -
使用linuxdeployqt在linux下进行Qt打包发布(超详细)题
举个例子:若存在程序A显式加载B.so,B.so隐式加载C.so,则对程序A使用linuxdeployqt拷贝依赖时,程序A的间接依赖文件C.so,将不会被拷贝。如果你的应用中,调用了其他的库,又想要放在某个指定目录下,那么可以在应用同目录下,添加qt.conf文件,指定库搜索路径。负责安装完成时的配置工作,软件安装完后,执行该Shell脚本,一般用来配置软件执行环境,必须以“#!deb包安装时,默认将内部文件,释放至根目录下(/),故我们需要在打包时,将安装目录层次创建好,以达到想要的安装路径效果。...原创 2022-08-08 19:27:11 · 745 阅读 · 0 评论 -
基于Ubuntu Qt mqtt库的mqtt客户端实现
qt mqtt ubuntu原创 2022-08-04 14:07:06 · 1447 阅读 · 1 评论 -
为什么QDataStream保存文件多出四个字节
QByteArray在使用转载 2022-07-30 10:05:39 · 700 阅读 · 0 评论 -
QT中文乱码
来自:http://hi.baidu.com/cyclone/blog/item/9d7293130e5a498d6538dbf1.html一、一个简单的 Qt程序下面这个小程序,估计大家会感到比较亲切。似乎有相当多的中文用户尝试写过这样的代码:#include #include int main(int argc, char **argv)转载 2011-12-26 13:48:27 · 4483 阅读 · 0 评论 -
qt中文乱码问题
以下是dbzhang关于qt中文乱码问题原因的阐述,觉得不错: 首先呢,声明一下,QString 是不存在中文支持问题的,很多人遇到问题,并不是本身 QString 的问题,而是没有将自己希望的字符串正确赋给QString。很简单的问题,"我是中文"这样写的时候,它是传统的 char 类型的窄字符串,我们需要的只不过是通过某种方式告诉QString 这四个汉字采用的那种编码。而问题原创 2012-01-09 11:00:41 · 137409 阅读 · 34 评论 -
qt调用javascript
Qt有一个叫QWebView的类,它是基于WebKit引擎的浏览器。除此之类Qt还有可以显示HTML代码的部件如QTextEdit等,为我们提示了丰富、实用、简便和意想不到的功能。Qt的扩展性非常好,它可以允许你的C++代码与网页里的Javascript进行交互。这里分享一下自己使用C++执行网页的Javascript函数的一点经验。 调用Javascript代码是通过QWebFrame原创 2011-12-14 21:37:02 · 14341 阅读 · 2 评论 -
QWidget为模态的问题
设置QWidget的Qt::WindowModality属性为Qt::WindowModal和Qt::ApplicationModal,发现窗体仍然不会模态,网上查了一下,有人说改属性只对window有效,找了很多方法,验证原因是因为我的QWidget有Parent,如果构造时设置Parent为NULL的话,就可以了。 以下是工作中用到的常用窗体属性:setWindowFlags(Qt原创 2011-12-06 15:11:00 · 8204 阅读 · 0 评论 -
QString 与中文问题
首先呢,声明一下,QString 是不存在中文支持问题的,很多人遇到问题,并不是本身 QString 的问题,而是没有将自己希望的字符串正确赋给QString。很简单的问题,"我是中文"这样写的时候,它是传统的 char 类型的窄字符串,我们需要的只不过是通过某种方式告诉QString 这四个汉字采用的那种编码。而问题一般都出在很多用户对自己当前的编码没太多概念,于是一转载 2011-09-14 17:00:02 · 779 阅读 · 0 评论 -
在Qt标准FileDialog对话框中插入控件
Qt的界面大多是MVC的组织模式。其中控制部分是对外的接口,而界面则不对外,就是说,用户只能在控制部分的接口中实现对Qt类的通信,如果你要是想改变界面的显示,则没有提供相关的接口。我在实际工作要在QFileDialog中增加一个控件。在QFileDialog定义中可以发现Q_DECLARE_PRIVATE(QFileDialog),这句话就是在QFileDialog中定义了界面的联系。查看宏的转载 2011-12-08 09:38:58 · 3038 阅读 · 2 评论 -
QEventLoop 的使用两例
熟悉的陌生人Qt 是事件驱动的,所以当你用Qt的时候,几乎时时刻刻和 QEventLoop 打交道、,只是你可能没有意识到:QCoreApplicaton::exec()QApplication::exec()QDialog::exec()QThread::exec()QDrag::exec()QMenu::exec()...在前面列出的这些常见函数的背后,都有各自的QEventL转载 2011-12-06 14:59:59 · 911 阅读 · 0 评论