
Qt Widget
文章平均质量分 51
Qt Widget
blueshaw
我不是针对谁,我是说在座的各位,注意,是在座的各位,除了我都是大佬!
展开
-
Qt Creator配置小技巧
Qt Creator 的配置小技巧原创 2022-08-17 13:58:46 · 1414 阅读 · 1 评论 -
Qt中实现窗口单例的3中常见方法
Qt中实现窗口单例的3中常见方法用Qt开发GUI应用时,经常需要设置窗口单例显示。趁着最近工作不忙,总结下实现窗口单例的3种常见方法。借助共享内存,QSharedMemory。借助QLocalServer/QLocalSocket。借助DBus框架。1. 共享内存共享内存的思路是第一个主窗口初始化时,以关键词key创建一片共享内存。当第二个主窗口初始化时,以同样的key创建共享内存时,就会失败。此时就可以判断主窗口已初始化,第二个主窗口自动退出即可。这个思路的实现方案已经有一个不错的第三方原创 2021-12-14 20:48:28 · 1589 阅读 · 0 评论 -
[Qt]获取DBus方法的调用者信息
背景DBus作为系统间进程通信的一个基础服务,使用方便。但是如何限制DBus服务的调用权限,只允许特定用户或是用户组,或是特定程序调用?下面是一个简单的Demo,获取调用者的相关信息,为DBus服务的鉴权提供有用的数据来源。DBus服务#include <QObject>#include <QDBusVariant>#include <QDBusContext>class DBusDemo: public QObject, protected QDBusC原创 2021-07-06 20:30:53 · 803 阅读 · 3 评论 -
Qt使用阻塞方式等待HTTP响应
思路是使用QEventLoop,进入主事件循环,等待调用quit()。QNetworkReply * reply = manager->get(request);QEventLoop eventLoop;connect(reply, &QNetworkReply::finished, &eventLoop, &QEventLoop::quit);eventLoop.exec(QEventLoop::ExcludeUserInputEvents); reply_-&原创 2021-04-10 18:23:11 · 1192 阅读 · 1 评论 -
Qt使用D-Bus几种写法
1. QDBusInterface同步调用// 必要的头文件#include <QDBusMessage>#include <QDBusInterface>#include <QDBusReply>// 定义D-Bus的接口QDBusInterface interface = new QDBusInterface("com.deepin.dde.Launcher",原创 2021-01-10 10:58:04 · 2378 阅读 · 0 评论 -
自定义qDebug输出格式
自定义qDebug输出格式的方法:qputenv("QT_MESSAGE_pattern", "%{appname} %{type} %{time [yyyy-MM-dd hh:mm:ss]} %{file} %{line} %{function} %{message}");qSetMessagePattern("%{appname} %{type} %{time [yyyy-MM-dd hh:mm:ss]} %{file} %{line} %{function} %{message}");如果同转载 2020-10-14 15:03:07 · 946 阅读 · 0 评论 -
从零开始在Linux环境下构建Qt项目DEB包
使用dh_make和dpkg-buildpackage构建deb包1. 调整Qt项目下面是一个可以构建deb包的完整目录结构,其中build和debian目录是后续操作自动生成的。建议调整下,把代码放在src目录中,项目根目录下保留pro文件。data目录中保存的是deb包的desktop文件和desktop图标。build是项目编译后,可执行文件和编译产生的中间文件存放的地方,具体可看后续的pro文件。debian目录保存构建deb包所需文件,由dh_make命令产生,后续会介绍。$ tree -L原创 2020-06-09 11:01:23 · 1088 阅读 · 0 评论 -
Qt工程CMAKE文件模板
SET(CMAKE_CXX_STANDARD 11)SET(CMAKE_AUTOMOC ON)SET(CMAKE_AUTORCC ON)#SET(Qt5_DIR "${CMAKE_PREFIX_PATH}/cmake/Qt5")#SET(Qt5Core_DIR "${CMAKE_PREFIX_PATH}/cmake/Qt5Core")#SET(Qt5Gui_DIR "${CMAKE_PREFIX_PATH}/cmake/Qt5Gui")#SET(Qt5Widgets_DIR "${CMAKE原创 2020-08-24 15:50:32 · 402 阅读 · 0 评论 -
QProcess调用echo回显
QString cmd = "/bin/sh -c \"echo ${USER}\"";QProcess process;process.start(cmd);process.waitForFinished();qDebug() << process.readAll();原创 2020-08-04 09:00:37 · 854 阅读 · 0 评论 -
Qt生成UTF-8编码的MD5值
MD5值采用UTF-8编码,代码如下:QString CommonHelper::md5(QString key){ QCryptographicHash md5(QCryptographicHash::Md5); md5.addData(key.toUtf8()); return QString(md5.result().toHex());}原创 2020-07-07 15:04:23 · 346 阅读 · 0 评论 -
Qt自定义Delegate实现QTableWidget整行选中圆角矩形高亮效果
class MyTableItemDelegate : public QStyledItemDelegate{ Q_OBJECTpublic: MyTableItemDelegate (QWidget *parent = 0) : QStyledItemDelegate(parent) {} void paint(QPainter *painter, const Q...原创 2020-03-21 21:56:44 · 2808 阅读 · 1 评论 -
基于Qt的视频监控项目自定义时间轴刻度控件[开源]
背景介绍目前很多PC安防监控客户端上,查看录像时,直接生成了一个当天的时间轴,在时间轴上会以不同的色块标注当天哪些时间段有录像,哪些时间段没有录像,一目了然,效果挺好的。功能介绍很久之前做过这个Demo,实现了以下功能:可以根据给定的时间段设置不同颜色标记出有录像的时间段。根据控件大小,时间轴自动缩放。左右滑动查看未显示的时间轴。鼠标悬停在时间轴上可以显示悬停点对应的录像时间。...原创 2020-01-20 11:17:47 · 4088 阅读 · 12 评论 -
基于Qt的Windows平台屏幕颜色拾取器[开源]
1. 工具简介一个Windows平台小工具,主要屏幕取色功能,支持自定义编辑颜色,动态显示。2.开发涉及技术点绘制自定义控件系统托盘多语种切换(待完善)QSS系统样式跨平台支持(待完善)3.后期待完善功能跨平台支持。目前在Win10上开发,但是所有代码都跟平台无关,全部是基于Qt框架开发。后期跨平台开发应该会稍稍轻松些吧。系统设置。后期打算加入系统设置功能,把多语种...原创 2020-01-19 22:43:49 · 893 阅读 · 2 评论 -
查询操作系统类型和版本
在Qt5.12.4中,QSysInfo提供的查询操作系统类型和版本的接口已经定义为过时。但并不是说这整个类被定义为过时的。Public Types(obsolete) enum MacVersion { MV_9, MV_10_0, MV_10_1, MV_10_2, …, MV_None }(obsolete) enum WinVersion { WV_32s, WV_95, WV_98...原创 2019-11-12 16:32:17 · 1048 阅读 · 0 评论 -
Qt内置浏览器引擎WebEngine调试和分析方法
问题背景H5和JS代码写好了,在浏览器里调试也一切OK,然后嵌入到Qt中,发现各种问题,这时候,如何在Qt框架下调试Web的代码呢?调试方法在Qt帮助文档中,搜索Qt WebEngine Debugging and Profiling,重点关注Qt WebEngine Developer ToolsThe Qt WebEngine module provides web develope...原创 2019-11-08 11:07:08 · 5325 阅读 · 0 评论 -
查看Qt的WebEngine模块内核Chromium版本号
查看WebEngine模块内核Chromium版本号有两个方法。1.查看官方文档在Qt5.12.4的官方帮助文档中搜索 Qt WebEngine Overview ,其中的WebEngine Core Module介绍如下:Qt WebEngine Core ModuleThe Qt WebEngine core is based on the Chromium Project. Chr...原创 2019-11-07 15:13:27 · 6777 阅读 · 2 评论 -
扩展屏中子控件(QWidget)全屏显示方法
开发环境: Qt5.12.3 + MSVC2017问题背景视频监控类软件或是视频播放类软件都有一个全屏播放的功能,可以全屏播放视频画面。主窗口可以分别用以下两个接口实现。void QWindow::showFullScreen()void QWidget::showFullScreen()如果用户电脑接了第二块屏幕作为扩展屏,默认情况下,无论软件在哪一个屏幕上,子窗口全屏都只会显示在...原创 2019-10-25 14:57:11 · 3309 阅读 · 1 评论 -
基于QCalendarWidget自定义日历控件
首先觉得Qt自带的日历控件不好看,跟现在的设计风格有些不符了;其次自带的控件没法满足目前的功能需求。所以只能参考网上的大神们的帖子,结合自己的项目需求,基于QCalendarWidget开发自定义日历控件。最终效果就是如下图所示了。代码实现BaseCalendarWidget类就是我们的自定义日历控件,主要的定义如下,继承于QCalendarWidget。下面分析每个主要成员函数的作用。c...原创 2019-08-17 17:12:20 · 2787 阅读 · 0 评论 -
Qt数据库多线程操作注意事项
将项目从Qt5.10.1迁移到Qt5.12.4,发现封装的数据库相关代码报错,主要是以下两种:QSqlDatabasePrivate::database: requested database does not belong to the calling thread.QSqlDatabasePrivate::removeDatabase: connection ‘xxx’ is still...原创 2019-07-22 10:11:32 · 7672 阅读 · 1 评论 -
基于Qt的海康SDK解码回显绘制矩形框
视频安防行业无法避免接触海康、大华和宇视等安防设备厂商,其提供的解码SDK的Demo都是基于win32的API。若要实现海康、大华和宇视等厂家客户端中的3D云台功能,就需要在回显的视频画面中绘制相应的矩形框。当采用Qt作为前端,厂商SDK负责解码和渲染时(以海康SDK为例),可采用如下方法实现上述功能。头文件申明如下:class HikPlayer : public QObject{ ...原创 2019-06-25 15:38:55 · 1756 阅读 · 15 评论 -
Qt应用程序注销重启方法优化
int main(int argc, char *argv[]){ QApplication app(argc, argv); if ( EXIT_CODE_REBOOT == app.exec()) { QString program = QApplication::applicationFilePath(); QStringList a...原创 2019-06-25 15:26:18 · 672 阅读 · 0 评论