Qt 小技巧
Qt编程一些经验
Snow__Sunny
这个作者很懒,什么都没留下…
展开
-
Tip17 验证Qt中一个布局是否可以在多个Widget中切换问题
动态的将某个布局从一个QWidget切换到另一个QWidget原创 2022-09-14 11:35:10 · 598 阅读 · 0 评论 -
Tip16 使用Qt检查扩展屏幕热插拔
Qt检测屏幕热插拔原创 2022-08-12 14:45:46 · 633 阅读 · 0 评论 -
Tip15 关于QListWidget几个使用问题
关于QListWidget几个使用问题原创 2022-07-11 20:07:22 · 245 阅读 · 0 评论 -
Tip14 QLabel设置行间距
左边是行间距0的效果,中间是行间距20的效果,右边是行间距40的效果以下是实现代码,主要通过设置HTML格式来实现;(暂时未找到其它方式设置QLabel行间距)QString qsContent = "Qt是一个1991年由Qt Company开发的跨平台C++图形用户界面应用程序开发框架。它既可以开发GUI程序,也可用于开发非GUI程序,比如控制台工具和服务器。Qt是面向对象的框架,使用特殊的代码生成扩展(称为元对象编译器(Meta Object Compiler, moc))以及一些宏,Qt很容易原创 2022-02-16 17:51:42 · 844 阅读 · 0 评论 -
Tip13 关于QToolTip的三言两语
最近项目中需要加上QToolTip提示,于是乎调研下QToolTip的使用方法1. Qt中自带的QToolTip设置QToolTip样式表2. 自定义QToolTip自定义QToolTip原创 2022-02-09 10:39:53 · 224 阅读 · 0 评论 -
Tip12 QtApng在Mac中使用
背景之前项目中在Windows中使用了QtApng来加载png图片为动态图片,现在需要将项目移植到Mac中,所以需要编译QtApng的Mac版本;步骤以下为从GitHub中获取源码并编译Mac插件放置到Qt安装路径下的步骤:先在官网下载QtApng源码下载后在目录中找到pro文件,使用Qtcreator打开;选择编译器及编译版本,我选择Release版本在build目录中找到以下文件5. 复制文件到Qt的安装目录中6. 编写Demo进行测试#include "widget.h原创 2021-11-30 11:24:55 · 292 阅读 · 0 评论 -
Tip11 Qt使用QShareMemory检查进程唯一性
#include "widget.h"#include <QApplication>#include <QSharedMemory>#include <QDebug>#include <QProcess>QSharedMemory g_sharedMemory;bool checkSingleInstance(QSharedMemory& sharedMemory){ static const QString APP_ID原创 2021-11-23 19:49:43 · 787 阅读 · 0 评论 -
Tip10 使用Qt杀掉自己的进程
MAC与Windows双版本,杀掉自己进程 //kill自己 int pid = qApp->applicationPid(); QString killCmd;#if defined(Q_OS_MACOS) killCmd = QString("kill -9 %1").arg(pid);#elif defined(Q_OS_WINDOWS) killCmd = QString原创 2021-11-02 10:32:51 · 823 阅读 · 0 评论 -
Tip9 Qt字体设置
字体定义#if defined(Q_OS_WINDOWS)static const QString DEFAULT_FONT_FAMILY = "Microsoft YaHei";#elif defined(Q_OS_MACOS)static const QString DEFAULT_FONT_FAMILY = "PingFangSC";#elsestatic const QString DEFAULT_FONT_FAMILY = QFontDatabase::systemFont(QFont原创 2021-10-19 17:06:51 · 160 阅读 · 0 评论 -
Tip8 Qt常用的窗口属性设置
Qt常用的窗口属性设置 //设置窗口无边框、顶置 setWindowFlags(windowFlags() | Qt::FramelessWindowHint | Qt::WindowStaysOnTopHint); //去除窗口放大缩小按钮 setWindowFlags(windowFlags() &~ Qt::WindowMinMaxButtonsHint); //使窗口在关闭后自动释放资源 setAttribute(Qt::WA_DeleteOnClo原创 2021-10-19 16:42:45 · 452 阅读 · 0 评论 -
Tip7 QtCreator使用MaintenanceTool添加组件
之前一直不知道如何使用MaintenanceTool为QtCreator添加组件,最近有时间研究了下,以下是正确更新方法:qt添加,删除组件打开安装路径找到Maintenance.exe打开点击添加组件发现有错误这里我们需要重新在设置中添加一个临时资料档案库打开设置添加临时资料档案库这里的地址我选的是清华大学的qt镜像站https://mirrors.tuna.tsinghua.edu.cn/qt/online/qtsdkrepository/windows_x86/root/qt/原创 2021-10-15 17:10:31 · 1586 阅读 · 1 评论 -
Tip6 程序中添加崩溃处理,使用Dump文件以及Dump文件分析
以下两篇帖子介绍了如何添加Dump文件至程序如何查看调试Dump文件原创 2021-10-15 09:13:26 · 288 阅读 · 0 评论 -
Tip5 windows防止屏幕休眠的方式
最近项目中需要软件运行时,禁止windows休眠,这里主要考虑了两种实现方式;方式一:使用windows提供的防休眠接口:转载自这位老哥的阻止屏幕保护bool active = false;SystemParametersInfo(SPI_SETSCREENSAVEACTIVE, false, &active, SPIF_SENDWININICHANGE);防止系统关闭显示器或进入待机状态程序启动时,调用:SetThreadExecutionState(ES_CONTINUOUS原创 2021-10-14 16:16:44 · 699 阅读 · 0 评论 -
Tip4 在QPaintEvent中使用setStyleSheet导致的高CPU占用
之前程序在启动之后未处理事件时,CPU占用一直维持在%0-1左右;但最近程序启动后突然占用达到%20了;遂开始代码回滚,逐版本查找,最后发现是由于在QPaintEvent中使用setStyleSheet导致的高CPU占用;void Widget::paintEvent(QPaintEvent *event){ this->setStyleSheet("background-color: rgb(25, 25, 25);");}这钟方式绘制QWidget的背景,CPU占用如下所示:原创 2021-10-14 09:20:58 · 429 阅读 · 0 评论 -
Tip3 VS中解决Qt中文乱码的方式
QPushButton* sendButton = new QPushButton(QString::fromLocal8Bit("权限设置"));QPushButton* sendButton = new QPushButton(QStringLiteral("权限设置").toLocal8Bit());原创 2021-10-12 10:07:02 · 449 阅读 · 0 评论 -
Tip2 Qt中判断当前的操作系统
在Qt中可以使用宏定义很方便的判断当前的操作系统类型;判断是否为Windowsbool SystemInfo::isWindows(){#ifdef Q_OS_WINDOWS return true;#else return false;#endif}判断是否为win10bool SystemInfo::isWindows10(){ if (isWindows()) { return QSysInfo::productVersion().原创 2021-10-12 16:52:45 · 1550 阅读 · 1 评论 -
Tip1 Qt事件循环防止界面卡死
在Qt项目中,有时候需要弹出一个弹框,等待用户选择后,程序根据用户的选择结果才能继续向下执行;那么在等待用户选择时,主进程不能被卡死;这时候可以使用Qt的事件循环机制QApplication::processEvents接口,来防止界面卡死; PermissionCheck per; if (per.checkDeviceAccessPermission()) { int ret = -1; while (!(ret = per.isFinished()))原创 2021-10-12 16:45:51 · 2061 阅读 · 0 评论