Qt 从入门到精通
Qt开发,从小白到专家之路
hellokandy
我总在牛A与牛C之间徘徊!
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
QT QProcess + xcopy 实现文件拷贝
本文介绍了一种在Windows客户端软件中使用QProcess结合xcopy命令实现文件夹复制的方法。通过创建QProcess对象并连接相关信号槽,可以监控复制过程的状态和输出。关键实现包括:1) 使用xcopy命令的/E(递归复制)、/I(创建目录)、/Y(覆盖不提示)参数;2) 通过信号槽机制处理标准输出、错误输出、进程状态变化等事件;3) 提供详细的日志输出功能。该方法相比直接调用系统API具有更好的跨平台兼容性,同时能获得详细的复制过程反馈信息。文章还展示了如何通过QProcess监控进程启动、运行原创 2025-08-11 19:27:53 · 365 阅读 · 0 评论 -
QT 高分屏不同缩放比例的自适应处理
针对Windows客户端软件在高分辨率屏幕下界面布局失真的问题,本文提供了两种Qt解决方案。方法一通过设置Qt::AA_EnableHighDpiScaling属性实现自适应缩放,方法二则采用设置环境变量QT_ENABLE_HIGHDPI_SCALING的方式,后者能提供更好的抗锯齿效果。代码示例展示了如何在Qt 5.14及以上版本中实现高DPI屏幕适配,帮助开发者解决控件比例失调问题。(150字)原创 2025-08-11 19:00:34 · 453 阅读 · 1 评论 -
QT QVersionNumber 比较版本号大小
使用QT的QVersionNumber可以简化软件版本比较过程。该工具类能直接解析版本字符串(如"1.0.5.31"),并提供比较运算符(<、>、==)来判断版本大小。原创 2025-08-11 18:50:56 · 257 阅读 · 0 评论 -
QT 如何实现enum与字符串的互转
本文介绍了如何使用Qt的QMetaEnum实现枚举值与字符串的相互转换。通过ColorSelector类中的Colors枚举,演示了如何将枚举值(kColorRed等)转换为字符串保存到文件,以及从字符串恢复为枚举值。关键方法是使用QMetaEnum的valueToKey()将枚举值转为字符串,keyToValue()将字符串转回枚举值。示例代码展示了获取枚举值(kColorBlack=104)、类型转换(Colors类型)、枚举名称与值的相互转换等功能,适用于需要持久化枚举值的场景。原创 2025-08-04 18:55:23 · 370 阅读 · 0 评论 -
QT Windows 资源管理器的排序规则
本文介绍了如何使用Qt的QCollator实现类似Windows资源管理器的自然排序功能。通过设置QCollator的数字模式和大小写敏感性,可以正确处理包含数字的字符串排序。原创 2025-07-18 16:42:39 · 358 阅读 · 0 评论 -
QT QLineEdit 如何支持文件拖放
在客户端软件中,如果遇到选择文件时,人们往往可以通过点击按钮的方式来打开文件对话框,从而选择需要的文件,并将其显示在编辑框中。但是也有一些用户喜欢拖拽文件的方式来实现这一目的。那么 QLineEdit 是如何支持文件拖放?原创 2025-02-18 15:28:49 · 542 阅读 · 0 评论 -
QT 如何禁止QComboBox鼠标滚轮
一般情况下,QComboBox会相应鼠标的滚轮事件,即当鼠标停靠在QComboBox上方时,滚动鼠标滚轮,QComboBox的选项会发生切换。但这或许并不是我们希望所出现的,尤其是当QComboBox嵌入在QScrollArea中时,用户只是想通过鼠标滚轮来上下滑动QScrollArea,但是在鼠标位置经过QComboBox时,其选项就发生了切换。原创 2025-01-16 15:12:48 · 1295 阅读 · 0 评论 -
QT 如何使QLabel的文字垂直显示
想要实现QLabel文字的垂直显示,可以通过使用“文字分割+填充换行符”的方式来实现QLabel文字垂直显示的效果原创 2024-11-04 11:39:04 · 1393 阅读 · 0 评论 -
QT 如何置顶窗口并激活
基本上,客户端软件都会有置顶某个窗口的需求。置顶窗口+激活窗口,两者不是同一个问题。有时候窗口置顶了,并不代表该窗口属于激活状态。原创 2024-10-16 19:50:36 · 1368 阅读 · 0 评论 -
QT 如何判断电脑已安装某个软件
如何判断Windows电脑是否已经安装了某个软件?一般而言,通过安装包形式安装的软件,都会把卸载信息写入到注册表,本文正是通过读取注册表的方式来判断是否已安装了该软件原创 2024-09-26 16:55:22 · 661 阅读 · 0 评论 -
QT 如何在QPushButton上播放gif(终极版)
在平时浏览网站,或者使用软件的时候,经常可以见到:在点击了某个按钮之后,按钮上会显示动图以及提示文字。在QT中,比较常见且简单的做法就是:给按钮设置一个layout,然后在这个layout里面添加QLabel(作为QMovie的载体),以及用于显示文字的QLabel。该方案可参考:https://blog.youkuaiyun.com/hellokandy/article/details/120043562。原创 2024-03-14 17:24:44 · 1705 阅读 · 0 评论 -
QT 如何防止 QTextEdit 自动滚动到最下方
QT5.14.2,在往QTextEdit里面append字符串时,如果超出其高度,默认会自动滚动到QTextEdit最下方。但是有些场景可能想从文本最开始的地方展示,那么就需要禁止自动滚动。代码如下://设置编辑框的光标位置(防止自动滚动到最下方)QTextCursor cursor = edit->textCursor();cursor.movePosition(QTextCursor::Start);edit->setTextCursor(cursor);...原创 2024-03-14 11:23:47 · 1350 阅读 · 0 评论 -
Qt Cannot mix incompatible Qt library (version 0x50e02) with this library (version 0x50e01))
在目标机器上,程序无法运行起来,通过日志查看发现打印了下面这个提示。大致意思是:无法将不兼容的Qt库(版本0x50e02)与此库(版本0x50e01)混合使用。原创 2024-03-11 13:45:36 · 1607 阅读 · 0 评论 -
Qt QtCreator打开pro项目时出现假死现象
在Windows系统下,QtCreator打开pro项目时出现假死现象,左侧项目树形图无法展开,项目根节点一直在转圈。尝试关掉所有QtCreator进程,重新打开pro也是无济于事。原创 2024-03-06 18:58:38 · 1343 阅读 · 0 评论 -
Qt 二维数组的访问与应用
配色方案有多种类型,可以根据不同的需求和应用场景来选择合适的配色方法。在柱状图、饼状图中都会用到不同的配色,本文将配色方案使用二维数组进行存储,对常用的配色进行了整理原创 2024-03-06 11:45:37 · 893 阅读 · 0 评论 -
Qt 常见的 QProgressBar 样式
在很多场景中都会用到进度条,比如:文件拷贝过程,软件更新等。本文对常见进度条的样式进行了整理原创 2024-02-28 08:53:56 · 3753 阅读 · 0 评论 -
Qt QCustomPlot 鼠标悬浮提示
使用QCustomPlot绘图时,相信大多数童鞋们都会有类似的诉求:希望鼠标移动到节点时,可以显示该节点的数据。这里转载了一篇关于 鼠标悬浮提示 的一篇文章,并对该文章涉及的代码经过了整理,经实践证明是可行的。原创 2024-01-31 17:16:10 · 1870 阅读 · 0 评论 -
Qt SQLite3数据库加密 QtCipherSqlitePlugin
在客户端软件开发过程中,基本都会涉及到数据库的开发。QT支持的数据库也有好几种(QSQLITE, QODBC, QODBC3, QPSQL, QPSQL7),SQLite就是其中之一,但这个 SQLite 是官方提供的开源版本,没有加密功能的。如果对于数据保密性有要求的,那么就要考虑对数据库或者数据本身进行加密了。最好的选择或许是对数据库本身进行加密(既不会暴露表结构,也不会暴露数据细节)原创 2024-01-29 15:25:51 · 2244 阅读 · 2 评论 -
Qt QRubberBand 如何实现鼠标框选控件
QRubberBand类提供了一个矩形或直线,可以指示选择或边界。常见的模式是结合鼠标事件来执行此操作。本文将使用框选QCheckBox控件,来演示QRubberBand是如何配合鼠标进行工作的。原创 2024-01-16 11:49:20 · 1185 阅读 · 0 评论 -
Qt Creator 常用快捷键
Qt Creator 常用快捷键一览表,各位有需要的盆友们敬请收藏好!原创 2024-01-08 15:26:31 · 1578 阅读 · 0 评论 -
Qt undefined reference to `vtable for xxx‘
在编译QT代码时,出现 undefined reference to xxx::entered(),通过鼠标双击QtCreator“问题栏”中的该行,则会跳转到发送信号的代码所在行。与上述代码一同出现在“问题栏”的还有 undefined reference to `vtable for xxx’。原创 2024-01-04 13:52:44 · 1013 阅读 · 0 评论 -
QT blockingFilter blockingMap blockingMapped
当mapFunction被并发调用时,一次只有一个线程会调用reduceFunction。reduceFunction的调用顺序由reduceOptions决定。按顺序为每个项目调用mapFunction一次。每个mapFunction的返回值被传递给reduceFunction。主要作用是筛选出符合条件的项值结果集,并与之替换原有序列列表。不直接修改容器的每一项,而是将处理后的结果返回一个新的容器。可以直接修改容器的每一项。原创 2023-11-07 10:51:57 · 730 阅读 · 0 评论 -
QT 点击窗口外区域 当前窗口自动关闭
想要通过弹出自定义窗口展示自定义的一些信息,同时也希望像右键菜单一样(点击非菜单区域,菜单自动关闭)的效果,那么你可以按照以下两种方式进行尝试:原创 2023-09-15 15:43:45 · 1910 阅读 · 0 评论 -
QT 如何清空layout中所有控件
需求时这样的:根据配置动态增加一些控件到指定的布局中,但是在添加控件到布局中时,需要先把布局中的控件都删除。原创 2023-09-01 16:40:24 · 3467 阅读 · 0 评论 -
QT 解决提升控件后提示 No such file or directory
在QtCreator中,给控件做提升时,提示“No such file or directory”,很明显,QtCreator找不到自定义控件文件。自定义控件的文件,则是放在widgets目录下面。原创 2023-06-04 12:12:59 · 1530 阅读 · 1 评论 -
QT 如何制作桌面日历
在Windows桌面,大概都见过桌面的小组件(天气、日历、代办事项等),在用户使用“Win+D”组合键显示桌面时,这些组件仍可以显示在桌面,并不会最小化或者隐藏。那么这是如何实现的呢?其实代码实现也很简单:只需要将程序主窗口的父窗口设置为桌面就可以了,程序在运行的时候,也不会在任务栏出现。原创 2023-05-31 10:06:07 · 617 阅读 · 0 评论 -
QT 线程安全的单例模式(使用Q_GLOBAL_STATIC实现)
Qt提供了宏 Q_GLOBAL_STATIC(官方说明文档:[https://doc.qt.io/qt-5/qglobalstatic.html](https://doc.qt.io/qt-5/qglobalstatic.html) ), 用于创建全局静态对象。鉴于此,我们可以通过这个宏就能轻松实现单例(且线程安全)。原创 2023-05-11 16:52:06 · 1477 阅读 · 1 评论 -
QT stackUnder 用法小结
stackUnder是什么意思?根据官方的解析,简而言之一句话:把窗口的小部件放置于父窗口的堆栈窗口中。本文将通过一则简单的示例,来具体解析stackUnder该如何使用。原创 2023-04-24 17:00:10 · 1947 阅读 · 0 评论 -
QT setBuddy 用法小结
将此标签的好友(窗口其他小部件)设置为好友。当用户按下此标签指示的快捷键时,键盘焦点将转移到标签的好友小部件。好友机制仅适用于包含一个字符前缀为“&”的文本的QLabels。此字符被设置为快捷键。原创 2023-04-24 16:09:14 · 1273 阅读 · 0 评论 -
QT 如何让QLineEdit的文字从最左边开始显示
当QLineEdit的文字长度超过了控件宽度,一般而言(控件文字设为靠左对齐),用户只能看到这一长串文字的后半段部分。但是如果想让QLineEdit从最左边开始显示字符串内容呢?举个例子,"abcdefghijklmnopqrstuvwxyz0123456789"这一长串字符串,在QLineEdit中显示时,可能只能看到“0123456789”,但是实际用户可能想优先看到字符串前半部分。原创 2023-04-24 15:28:36 · 2639 阅读 · 0 评论 -
QT 如何提高 Qt Creator 的编译速度
如何提高编译速度,貌似是一个老生常谈的话题。对于Qter而言,如何提高QT Creator 的编辑速度是一直都是大家所期盼的。本文也是查阅了各路大神的方法后整理出来的,希望对各位有所帮助。原创 2023-03-20 10:44:11 · 2343 阅读 · 1 评论 -
QT 常用控件类型命名参考
代码规范主要包含:命名、版式、注释等几个方面。其中命名包括变量、类、方法、文件名、数据库、表、字段、接口等方面。版式包括缩进、换行、对齐、大括号、循环体、逻辑判断等方面。注释包括文件注释、类注释、方法注释、参数注释、变量注释、代码片段注释等。原创 2023-03-09 11:14:40 · 3499 阅读 · 0 评论 -
QT 如何知道用户点击 QTextBrowser 中的具体链接地址
在通过鼠标点击 QTextBrowser 中的链接地址时,如果是希望使用外部浏览器打开链接地址,只需要添加一行代码。但如果是想知道用户点击的具体链接地址,则需要设置。原创 2023-02-07 11:23:18 · 579 阅读 · 0 评论 -
QT 如何设置 QCompleter 样式
在使用QCompleter,一般都会面临两个问题:1、如何设置Completer的行高;2、如何设置Completer的样式。本文将一次为你解答,顺便讲讲ComboBox设置Completer时需要注意的事项。原创 2023-02-02 09:56:37 · 2201 阅读 · 0 评论 -
QT 关于全屏 与 退出全屏
在某些场景(比如说:车机系统、医疗仪器等)可能需要确保软件的全屏显示,本次探讨的是如何实现全屏与退出全屏。原创 2023-01-31 17:34:24 · 2604 阅读 · 0 评论 -
QT QCompleter 用法小结
QCompleter类提供基于项模型的补全功能。您可以使用QCompleter在任何Qt小部件(如QLineEdit和QComboBox)中提供自动补全。当用户开始键入单词时,QCompleter会根据单词列表建议完成单词的可能方式。单词列表作为QAbstractItemModel提供。原创 2023-01-31 11:20:02 · 1559 阅读 · 0 评论 -
QT 如何去除QListView选中item后的虚线框
在使用QListView或者QListWidget时,如果选中其item,会发现边框会出现虚线框,这并不美观!所以,我们需要去掉选中后的虚线框。在查阅各路大神的实现方式后,总结了有三种方法可以去除虚线框。原创 2023-01-30 10:56:16 · 3145 阅读 · 0 评论 -
QT 如何把外部程序嵌入到QT界面
一个奇怪但又合乎现实需要的需求,就是把外部程序嵌入到本窗口内,实现外部程序在本窗口的显示。可能外部程序是由其他人开发的,但是想“拿来”作为内部使用,于是乎想把外部程序嵌入到本程序窗口内,让他们更像是一个整体。更有甚者,也可以实现外部程序与本程序之间的通讯。原创 2023-01-15 09:42:05 · 8895 阅读 · 3 评论 -
QT 如何只允许打开一个 chm 文档
chm文档,大家都不会陌生,很多软件的帮助文档就是chm格式的。我们自己在开发程序的时候,也需要对外提供帮助文档,为了方便用户,经常在软件中就可以打开帮助文档,那么如何只允许显示唯一一个帮助文档呢?原创 2023-01-12 11:17:00 · 971 阅读 · 1 评论 -
QT 如何实现 半透明的 圆角 矩形 窗口
在日常使用的软件里面,有些软件提示用户时,经常会发现有些提示窗口是半透明的。那么如何实现一个可拖动的、半透明、圆角矩形窗口呢?整体思路:将窗口本身设置为透明,然后通过qss或者绘图的方式来实现半透明的效果。原创 2023-01-11 17:25:36 · 2109 阅读 · 0 评论
分享