QT
文章平均质量分 54
^Moon^
这个作者很懒,什么都没留下…
展开
-
在QT的信号槽中使用自定义数据类型
qt中使用信号槽来处理GUI与后台数据同步是不错的。耗时的任务可以在处理完数据后使用信号通知UI更新。对于qt中的已有类型,可以直接使用。但,多数时候都需要用到自定义类型。如果像内建类型那样使用,编译时正常,但运行时会报错:QObject::connect: Cannot queue arguments of type 'xxxx' (Make sure 'xxxx' is registed using qRegisterMetaType().)原因:在跨线程进行信号槽连接时,为了不阻塞发送信号的线程,原创 2021-09-17 17:15:41 · 864 阅读 · 0 评论 -
库开发技巧-2-改善代码以符合二进制兼容
文章目录添加新数据成员到没有d指针的类中添加重新实现的虚函数使用新的类在叶子类中添加一个新的虚函数使用signals替代虚函数添加新数据成员到没有d指针的类中如果已有的类没有bigflags,预保留的变量,也没有d指针,但是还需要添加新的私有成员变量。还是有补救的办法的。如果类继承自QObject,可以把附加的数据成员写入一个特定的子类中,并通过遍历子类列表(QObject::children())来查找附加的数据成员。不过,一个更好更快的方法是用哈希表来存储类对象和附加数据的映射关系。为了达到这个目的翻译 2021-08-12 19:48:21 · 130 阅读 · 0 评论 -
Ubuntu图形界面卡死问题
在虚拟机环境下使用Ubuntu做图形应用程序开发,有时候会遇到卡死的情况,这个情况有可能只是图形界面卡死,可以尝试重启图形界面来解决。ctrl+alt+F2-6,切换至终端登录。执行:sudo service lightdm restart然后,ctrl+alt+F7,切换回图形界面,看是否重启成功。...原创 2021-08-05 10:14:33 · 6613 阅读 · 0 评论 -
QT5.8-程序最小化到托盘
对于类似于后台服务的界面非常简单的程序,不需要总显示UI界面,最小化至托盘就是比较好的一个选择.第一步:实现程序启动直接最小化至托盘图标. 1.新建一个QT项目(本例基类QQWidget,其他基类类似), 不勾选生成ui文件. 2.寻找一个图标文件(icon.ico),以供程序在托盘显示.向项目中添加一个资源文件,并添加prefix包含图标文件. 3.修改main.cpp中的w.show(原创 2017-03-07 18:17:58 · 1871 阅读 · 1 评论 -
undefined reference to `vtable for’”问题的原因及解决方法
如果使用QtCreator创建类时,没有选择继承自QObject类或其子类,而在创建后手工修改继承自QObject并手工添加Q_OBJECT宏,则在编译时有可能会出现"undefined reference to `vtable for’…有时候,手快(尤其程序员非常迷恋快捷键【doge】),会不小心跳过一些关键步骤,导致出现一些问题。如果添加后,没有马上编译,而是编写了很多业务代码后编译,才发现qt给你报了大量错误。经过自己摸索,还有网友的提示,总结了一些方法供大家参考。原创 2017-03-23 20:06:29 · 86346 阅读 · 39 评论