![](https://img-blog.csdnimg.cn/20210810100135678.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
Qt6
文章平均质量分 65
Qt6相关
闫有尽意无琼
Qt开发者,爱科技,爱阅读,爱生活。
展开
-
QT6之多线程——子类化QObject和子类化QThread
备注:本文重点不是教怎么写多线程,这个官方示例依和网上示例一大把。。多线程的必要性不言而喻,Qt默认的线程在Qt中称之为窗口线程,也叫主线程,负责窗口事件处理(鼠标事件、键盘事件等等)或者窗口控件数据的更新子线程负责后台的业务逻辑处理,子线程中不能对窗口对象做任何操作,这些事情需要交给窗口线程处理.最常见的现象就是,当你新建项目后给QMainWindow或者QWidget对象的构造函数引入复杂耗时的逻辑时,然后再试着拖动窗口顶部结果卡死了。因为事件循环被阻塞了拖动窗口的事件执行不到了,然后就卡死了……原创 2024-04-30 11:09:44 · 945 阅读 · 1 评论 -
Qt6之QScopedPointer——智能指针
以下使用一个简单的QTime对象来演示各种内存管理方式:2、手动管理 如下,构函数中创建,析构函数中delete,在简单场景下并没有错;4、使用智能指针管理场景4.1 为什么没*号,它还是指针吗?到底对象是哪个?4.2 访问和管理成员对象时应该用箭头运算符“->”还是“*”?Qt官方示例中演示了复杂场景delete和QScopedPointer的对比,如下图:原创 2024-04-19 15:12:00 · 464 阅读 · 0 评论 -
Qt6之布局及技巧
Qt布局技巧原创 2023-08-29 11:22:18 · 428 阅读 · 0 评论 -
Qt6之设置页面切换QTabWidget——仿ToDesk(4)
QTabWidgetQt中的选项卡小部件QTabWidget,完全可以轻而易举的实现多页面切换,主要意义是:能够在同一个窗口中自由切换不同页面的内容;是一个容器类型的组件,同时提供友好的页面切换方式;原创 2023-08-24 15:39:50 · 1014 阅读 · 2 评论 -
Qt6之带三角形的提示框——仿ToDesk(3)
声明:本文仅用于用qt学习todesk界面设计;原创 2023-08-21 17:38:21 · 468 阅读 · 0 评论 -
Qt creator之对齐参考线——新增可视化缩进功能
Qt creator之对齐参考线 Qt creator随着官方越来越重视,更新频率也在不断加快,今天无意中发现qt creator新版有了对齐参考线,也称可视化缩进。如下图,浅灰色竖线,就是对齐参考线,也叫可视化缩进。原创 2023-08-15 14:12:59 · 1089 阅读 · 1 评论 -
Qt6之QStackedWidget——Qt仿ToDesk(2)
QStackedWidget也叫堆栈窗体类,它继承于QFrame,主要与QListWidget等结合使用,实现“一个界面多个页面切换”。原创 2023-08-09 10:03:33 · 1107 阅读 · 2 评论 -
Qt6之QListWidget——Qt仿ToDesk侧边栏(1)
QListWidget也称列表框类,它提供了一个类似于提供的列表视图,但是它具有一个用于添加和删除项的经典的基于项的接口。在实际应用中,多与堆栈窗体类配合使用。它是Qt这些常用基础组件里,我认为最被低估的类,其实QListWidget反到灵活、简单、实用,包括我自己在侧栏或者上栏,也经常使用了QFrame+QPushButton或者QToolButton组合拼接起来自己“造轮子”,如下图卡巴和微信的侧栏列表框样式以及。原创 2023-08-08 10:10:19 · 2338 阅读 · 1 评论 -
银河麒麟V10 qt5报错“The code model could not parse an included file,which might lead to incorrect code ”
临时解决方案:帮助 -> 关于插件 -> C++ -> ClangCodeModel 的选框取消勾选,然后重启 Qt creator,但意味着放弃ClangCodeModel相关格式化、补全等功能。原因:这是qt creator 5.4.2本身bug,qt creator4.7.0彻底修复。以上简单两步安装完成后,新建项目已经可以编译过,但ClangCodeModel会报错如下图。3、ClangCodeModel取消勾选,重启qt creator。2、在线安装qt creator。1、在线安装qt组件。原创 2023-08-02 16:16:56 · 1388 阅读 · 0 评论 -
Qt6之模型和视图
MVC是Model-View-Controller,即(Model)、(View)、:用于管理数据;:就是呈现在用户面前的界面外观,视图负责把模型中的数据显示给用户;:用于处理用户在用户界面的输入;MVC本质上目的是数据处理和显示分离,以提高灵活性和重用性。原创 2023-07-26 16:14:48 · 270 阅读 · 0 评论 -
QT6之QtWidgets和QWidget
QtWidgets和QWidget原创 2023-07-18 15:47:52 · 962 阅读 · 0 评论 -
Qt6之通用文件格式.dat
DAT 文件格式只是一种通用格式,它在文件中包含任何类型的数据,它可能包含二进制或文本格式的数据,通常以 .dat 扩展名保存。通常不能说某个特定的软件或程序负责创建 DAT 文件,这些文件仅由创建它们的应用程序特别访问。备注:通常都是二进制,优势是体积小,不被轻易修改,各个语言都能通用;原创 2023-07-13 15:52:04 · 2145 阅读 · 1 评论 -
Qt6之QSetting读取为空或失败
QSetting终极目的是,模糊平台,一套方法可以同时写入或者读取配置文件及注册表。原创 2023-07-12 16:32:55 · 1368 阅读 · 0 评论 -
Qt6之QMetaObject::invokeMethod同步和异步转换
在Qt开发场景下,当线程内有耗时或者复杂操作时,最直观的感受是GUI卡死,原因是qt是基于的就好比红绿灯,正常情况下,一直正常循环红灯、黄灯、绿地又红灯,往复循环,车流也控制的井然有序。可是突然斑马线有成白上千个小朋友排成队往过走,它就是耗时或复杂的操作,此时红绿灯可能已经循环了好几次但车确一直通过不了,造成后面整条路水泄不通。原创 2023-07-03 15:12:19 · 1070 阅读 · 0 评论 -
QT6之多线程控制——互斥量和信号量
在程序中,通常竞争使用但如果不加限制就很可能出现异常或未达到预期的结果。一次仅允许被一个线程使用,它可以是一块内存、一个数据结构、一个文件或者任何其他具有排他性使用的东西。这些必须互斥执行的代码段称为“(代码段)实施对临界资源的操作,为了阻止问题的产生,一次只能有一个线程进入临界区。原创 2023-06-25 16:49:30 · 1134 阅读 · 0 评论 -
Qt6之样式表
它用于绘制由 background-origin 指定在盒模式 中四个区域的图片开始显示的起点位置。背景图片在盒模式域内的对齐和平铺方式可以通过 background-position 和 background-repeat 属性指定。如果指定的背景图片具有 alpha 通道(透明效果),通过 background-color 指定的颜色将 会透过透明区域。原创 2023-06-08 18:11:15 · 749 阅读 · 0 评论 -
Qt6之vc调用qt生成的带ui的dll
受益于跨平台的特性,Qt生成dll的各种语言调用上体现的淋漓尽致,上篇已经演示了qt生成的无ui的dll及vc如何调用它,本篇将演示vc如何调用qt生成的带ui的dll。传统观点认为Qt生成的带ui的dll受限于 QApplication 的 exec 方法,这样才能产生消息循环于是只能采用QTWinmigrate中重写DllMain函数,但是仔细看该方案太繁琐和冗余了,于是受上篇启发,进行了以下尝试,果然可以。原创 2023-06-07 17:29:58 · 1522 阅读 · 0 评论 -
Qt6之vc调用Qt生成无ui的dll
Qt可以调用vc生成的dll,反之qt也可以提供生成的dll给其它语言来调用,比如VC、rust等。原创 2023-06-07 11:20:00 · 846 阅读 · 0 评论 -
Qt6之调用Windows下vc生成的动态链接库dll
无论采用哪种方法编译,最终都会生成dll文件和lib文件 (导入库文件)。原创 2023-06-05 17:34:18 · 4919 阅读 · 3 评论 -
Qt6之默认取消MySQL支持?
说明:本篇不是讨论qt怎么使用MySQL,这类的文章一搜一大堆。一、结论首先不是qt增加使用门槛是风向变了,而是自从Oracle 收购MySQL后对其进行了商业化,如今的MySQL已经不能算是一个完全开源的数据库了,而Qt官方则一直严格秉持着开源理念,故 Qt6 取消了对 MSOL 数据库的默认支持。原创 2023-05-24 09:59:22 · 787 阅读 · 2 评论 -
QT6之QTimeZone
QTimeZone 标识时间表示与 UTC 的关系,也可以表示 UTC、本地时间和与 UTC 的固定偏移量。QTimeZone(自 Qt 6.5 起)统一了它们与一般时间系统的表示,大多数操作系统普遍支持的一个时区被指定为本地时间。总结:简单来说QTimeZone就是qt专门用来解决系统时区和时区偏移问题的类。二、时间分类UTC(Coodinated Universal Time),协调世界时,又称世界统一时间、世界标准时间、国际协调时间。原创 2023-05-23 16:34:45 · 2001 阅读 · 0 评论 -
Qt6之万能数据类型QVariant详解
QVariant,被称为万能数据类型,实际上它是类似C++的联合union类型。简单的说自定义性能强就像一个盒子几乎可以让你放任意的qt类型,同时可以轻松构造任意类型的任意复杂数据结构,但请注意复杂类型意味着性能和效率的让步。由于C++禁止联合union包含具有非默认构造函数或析构函数的类型,这会导致好多继承的类qt类不能在联合中使用。如果没有 QVariant,这对()和数据库工作等来说将是一个问题,故引入该类型。原创 2023-05-17 13:54:53 · 2075 阅读 · 0 评论 -
Qt6之字符串类内存分配新变化——16的次方增加
qt提供了比标准c++ string更强大,更丰富,更实用的字符串类QString,它的主要功能22个已经在之前逐一分析过,感兴趣的可前往以下链接查看,本文主要重点分析下qt在字符串类上面做的优化,主要是两个方面,和。原创 2023-05-16 16:12:58 · 543 阅读 · 0 评论 -
qt6之gcc -v/jdk -v版本信息获取
此时我才恍然大悟想起了,shell中每个程序在运行后,都会至少打开三个文件描述符,分别是0:标准输入;2:标准错误 ,不仅有标准输出还可能是标准错误输出啊,此时我回头再去改以上传参,果然彻底解决了此问题。起因是我想通过函数拿到gcc -v的返回值,如上图所示,你可能觉得在shell中,不过一个命令的事么,但是在代码中就废了很多周折。4、此时我们试试gcc -v吧,诶,翻车了,虽然有打印输出,但str做为返回值就是拿不到,这是为什么。1、为了拿到命令行的返回值,我就有了以下函数:;原创 2023-05-15 14:59:46 · 339 阅读 · 1 评论 -
Qt6之QVarLengthArray——可变长度数组
(可以说:它是一个“具有小对象优化的向量”。2、 如果QVarLengthArray增长太多并且元素的数量超过内部缓冲区的大小,则使用堆分配并且QVarLengthArray变得非常像一个“普通”vector;1、这是通过将元素直接存储在QVarLengthArray的内部缓冲区中来实现的,以防它们适合。因其值是不确定的,当读取或者操作时可能触发异常,如下当我随便找了3个值打印时,显然值是随机的;它的元素连续存储在内存中,并且具有动态大小,可以随时向其中添加或删除元素。原创 2023-04-25 14:34:24 · 682 阅读 · 0 评论 -
QT6之类实例化——对象指针和对象
Qt完全遵循C++ 中类的实例化动作按存储位置可以分为和两种,分别对应不用 new 实例化类和用 new 实例化类。原创 2023-04-25 11:45:42 · 2455 阅读 · 0 评论 -
qt报错“QObject::connect: No such signal *”
现象:如下图,一直告警,No such signal,46行和49行打印都正常,但槽函数就是不打印输出。如下图,槽函数传递,形参只能是类型名QStringList ,不是形参名data;原创 2023-04-21 18:12:04 · 1330 阅读 · 0 评论 -
QT背后故事之Qt创始人Eirik Chambe-Eng
我们一些最优秀的开发人员没有学位,也没有Trolltech以外的相关专业经验,其他人则拥有博士学位。Qtopia对于Trolltech来说是一个非常令人兴奋的项目,我们毫不怀疑移动设备上的Linux将变得越来越重要,特别是在亚洲市场。Linux在手持设备上提供了Symbian和Windows无法比拟的灵活性和功能,通过Qtopia,我们的目标是为基于Linux的消费电子产品提供简单,直观和用户友好的界面。我们获得了咨询合同,使我们能够在商业环境中使用和测试Qt,同时为产品和公司的进一步发展提供资金。原创 2023-04-04 18:10:32 · 865 阅读 · 0 评论 -
QT背后故事之Qt创始人Haavard Nord
1999 年,Trolltech 开始受到投资者的广泛关注,我们有幸在 2000 年初获得 800 万美元的资金,就在互联网泡沫破灭之前。随着组织接近 200 名员工,我们逐渐实施了更多的流程和例程(也称为卓越运营),并使我们在制定和实施决策方面变得更加缓慢。如果你需要快速做出决定,那么不让其他办公室的人参与进来会更容易,即使你知道他们对你需要得出结论的事情有相关的意见。指出,将 80% 的时间花在与团队的沟通和协作上很常见,即所谓的协作超载。根据我自己的经验,我认为这个数字是相当准确的。原创 2023-04-04 17:46:54 · 727 阅读 · 0 评论 -
Qt 6.5 LTS 正式发布
qt6.5正式发布原创 2023-04-04 08:53:05 · 3297 阅读 · 2 评论 -
关于MaintenanceTool.exe添加或者更新时“网络错误”
3、粘贴一个国内源的根目录地址,推荐如下,先粘贴地址,然后条件测试,最后提示测试成功,点是启用。2、切到,资料档案库,临时资料档案库,添加。1、如下图,打开自定义配置位置;5、已经可以更新了;原创 2023-04-02 10:55:15 · 888 阅读 · 3 评论 -
关于qt creator手动添加构建套件kit问题
5、打开后如下图,因为我们没有安装qt只安装了qt creator,它会有第二个提示,告诉你如果你已经安装了qt请点击“Link with Qt”后选择qt安装目录会自动配置,这里没有就点旁边的不再显示即可;6、此时如果你点创建项目,会在构建选择这步卡住,原因是qt creator找不到编译器,自然无法编译项目也无法创建项目,此时它相当于一个记事本而已;9、选择kit,然后点“添加”,如下图二,先输入名称,其他按步骤选择,最后点应用即可。10、此时,再新建项目时,如下图,就可选择,刚才手动添加的编译器了。原创 2023-03-24 14:27:31 · 4817 阅读 · 7 评论 -
Qt6安装教程——国内源
qt6最新安装教程 2022qt6如果采用官方安装方式则必须能访问谷歌,然而国内源已经开始到位了所以更加省事,以国内源为例,演示下在线安装流程:1、先在以下地址下载,在线安装工具;NJU Mirrorhttps..原创 2022-04-29 21:57:50 · 54925 阅读 · 45 评论 -
qt creator大括号自动补全功能
如下图,看到好多视频中演示qt creator补全是2哪种方式,括号自动补全且光标移动到下一行,而自己每次都是1这样,先把括号补全,再按回车键,还得tab到光标位置;2补全方法:在你输入大括号左边后,直接按下回车键,即可。...原创 2022-04-28 17:24:43 · 1144 阅读 · 0 评论 -
Qt Quick Designer灰色或者禁用
目前新版本自qt6开始,已经默认禁用了Qt Quick Designer,qt未来将ui图像化重任要交给Qt Design Studio了,目地就是做ui设计的不用安装creator,目前过渡阶段,可以从插件中心启用。原创 2022-04-27 09:32:46 · 2578 阅读 · 0 评论 -
Qt Design Studio安装教程
断网安装,不需要的登录用户账户;3、安装后打开如下图;4、新建项目,拖出控件,可直接运行;5、此处还提供一个仪表范例;总结:使用后感觉该工具是一个适用于ui设计人员专用的工具;...原创 2022-04-26 16:19:41 · 9713 阅读 · 2 评论 -
QJason
从 Qt 5.0 开始提供了对 Json 的支持,我们可以直接使用 Qt 提供的 Json 类进行数据的组织和解析。相关的类常用的主要有四个,具体如下: Json 类 介绍 QJsonDocument 它封装了一个完整的 JSON 文档,并且可以从 UTF-8 编码的基于文本的表示以及 Qt 自己的二进制格式读取和写入该文档。 QJsonArray JSON 数组是一个值列表。可以通过从数组中转载 2021-12-15 10:49:05 · 452 阅读 · 0 评论 -
jason概述
JSON(JavaScrip Object Notation) 是一种轻量级的数据交换格式。它基于 ECMAScript (欧洲计算机协会制定的 js 规范) 的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据。简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言。 易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。关于上面的描述可以精简为一句话:Json 是一种数据格式,和语言无关,在什么语言中都可以使用 Json。基于这种通用的数据格式,一般处理两方面的任务:转载 2021-07-30 14:50:54 · 945 阅读 · 0 评论 -
Qt 中容器类型的控件
转载:https://subingwen.cn/qt/qt-containers/1、QWidget这个类是所有窗口类的父类,可以作为独立窗口使用,也可以内嵌到其它窗口中使用。Qt 中的所有控件都属于窗口类, 因此这个类也是所有控件类的基类。如果一个窗口中还有子窗口, 为了让子窗口有序排列, 这时候我们可以选择一个 QWidget 类型的容器,将子窗口放到里边,然后再给这个 QWidget 类型窗口进行布局操作。2、QFrameQFrame 就是一个升级版的 QWi..转载 2021-12-15 10:13:56 · 855 阅读 · 0 评论 -
QToolButton设置背景无效的思考
.QToolButton{border:0px;}.QToolButton:hover{background-color: rgb(221,221,221);}问题:如图qss显然语法是没有问题,但是左边窗口,主页和更新按钮,鼠标划过就是没有颜色变化,然后直接拖出来的右边两个按钮,却又生效了;尝试:将主页和更新按钮下的widget删除,样式又生效了,于是将该widget的样式用qss实现,果然顺利;QWidget#mainMenu_widget{ backg...原创 2021-11-26 14:10:32 · 2027 阅读 · 0 评论