
Qt
文章平均质量分 70
赵民勇
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
QIcon::actualSize的作用和用法
QIcon::actualSize 是 Qt 中用于获取图标实际渲染尺寸的关键方法原创 2025-08-22 17:04:17 · 169 阅读 · 0 评论 -
Qt中用于图像缩放的核⼼⽅法QPixmap::scaled
Qt中用于图像缩放的核⼼⽅法QPixmap::scaled原创 2025-08-22 15:01:17 · 373 阅读 · 0 评论 -
原始字符串字面量(Raw String Literal)
原始字符串字面量(Raw String Literal)原创 2025-04-04 10:19:29 · 330 阅读 · 0 评论 -
QPointer、QScopedPointer、QSharedDataPointer等指针用法总结
QPoniter转载 2023-04-23 15:12:45 · 927 阅读 · 0 评论 -
语言文件.po .pot和.mo简介及gettext工具简介
语言文件.po .pot和.mo简介及gettext工具简介转载 2023-03-07 17:33:01 · 8733 阅读 · 0 评论 -
qmake内置函数
qmake内置函数原创 2022-08-17 17:36:01 · 1387 阅读 · 0 评论 -
Qt中的Widget调色板QPalette
QPalette转载 2022-06-24 13:32:20 · 1294 阅读 · 0 评论 -
Qt各角色颜色对比图
原创 2022-04-14 17:29:01 · 477 阅读 · 0 评论 -
QSqlDatabase使用注意事项备注
一、连接名称要唯一-- 创建数据库连接:QSqlDatabaseQSqlDatabase::addDatabase(constQString&type, constQString&connectionName= QLatin1String(defaultConnection))-- 根据连接名称获取数据库连接:QSqlDatabaseQSqlDatabase::database(constQString&connectionName= QLatin...原创 2022-03-07 10:14:11 · 608 阅读 · 0 评论 -
Qt5 调试日志输出
QtMessageHandlerqInstallMessageHandler(QtMessageHandlerhandler)函数作用:装之前定义的Qt消息处理程序;返回指向上一个消息处理程序的指针。消息处理程序是一个打印调试消息、警告、关键和致命错误消息的函数。Qt库(调试模式)包含数百条警告消息,当出现内部错误(通常是无效的函数参数)时会打印这些消息。Qt内置发布模式也包含此类警告,除非编译期间设置了Qt_NO_WARNING_输出和/或Qt_NO_DEBUG_输出。如果实现自己的消息处理程..原创 2022-03-04 17:43:52 · 1221 阅读 · 0 评论 -
QSignalMapper信号映射类使用介绍
QSignalMapper类绑定来自可识别发送者的信号。此类收集一组无参数信号,并使用与发送信号的对象对应的整数、字符串或小部件参数重新发送这些信号。请注意,在大多数情况下,可以使用lambdas向插槽传递自定义参数。这会降低成本,并简化代码。该类支持使用setMapping()将特定字符串或整数、窗口、对象映射到特定对象。然后,对象的信号可以连接到map()插槽,该插槽将发出带有与原始信号对象关联的字符串或整数的mapped()信号。以后可以使用removeMappings()删除映射。示例:转载 2022-03-04 16:17:44 · 582 阅读 · 0 评论 -
Qt放大镜(二)
来自Qt本身的样例文档。演示如何操作QPainterPath中的元素。我们定义一个透镜形状的矢量变形场,并将其应用于路径上的所有点。这意味着在屏幕上呈现的不是像素操作,而是符号本身的修改矢量表示。从变形字形的高质量的反锯齿边缘可以看出这一点。为了获得一个相当复杂的路径,我们允许用户输入文本并将文本转换为路径。这是使用QPainterPath::addText()函数完成的。镜头是通过调用QPainter::drawEllipse()绘制的,使用QRadialGradient填充一个.原创 2022-01-24 15:00:47 · 939 阅读 · 0 评论 -
Qt放大镜(一)
版权声明:转载自Qt放大镜代码设计_onlyshi的专栏-CSDN博客放大镜代码设计一、起因看到自己手机T1上面的那个搜索app的图标是个放大镜,但是锤子科技把它真正做成了也具有放大镜的功能。由于自己刚学Qt,所以也想在电脑上试一下做一个放大镜的小玩意。但是思路有限,对Qt掌握也不是非常好,就很的简单做了一个,提供些思路给有需要的人,但是,做的还不够精细,不够好,希望以后随着对Qt的掌握程度的加深后,会重新做一个更好的。看看做完之后的效果对比图。二、代码实现1、实.转载 2022-01-20 09:33:47 · 1904 阅读 · 1 评论 -
Qt实现屏幕取色器 (放大镜,RGB显示,智能调节)原理
运行效果:原理: 首先给整个屏幕覆盖上一层高透明度的无边框窗口(这里我用的颜色为(255,255,255),且透明度为1 (【0,255】)) 通过定时器或线程实时更新鼠标位置,注意不要使用鼠标移动事件,如果通过鼠标移动来触发取色无法对动态视频取色 通过截图函数,对整个窗口进行截图,其中选择以鼠标为中心的一块矩形,我选取的大小是10*7,而放大镜是100*70,故放大倍数为10,将这部分矩形图形放在放大镜中,且选取鼠标所在位置的像素颜色。 ...转载 2022-01-20 09:31:50 · 1290 阅读 · 0 评论 -
Qt绘制直箭头和平滑的曲线箭头
先看绘制效果:直线箭头曲线箭头:直线箭头#pragma once#include <QVector>#include <QPointF>#include "DrawGeoBase.h"//当前标绘要素 - 直箭头class DrawGeoStraightArrow :public DrawGeoBase {public: DrawGeoStraightArrow(); ~DrawGeoStraightArrow(); virtual vo...转载 2021-12-09 15:47:53 · 3301 阅读 · 2 评论 -
Qt的pro工程文件中增加额外的编译选项方法
方法:在pro文件中使用:QMAKE_CXXFLAGS += 额外的编译选项 的方式增加额外的编译选项。例1:在switch-case语句中缺失break时报错或警告warning: this statement may fall through [-Wimplicit-fallthrough=]但有时我们确实是需要穿透,如下A、B、C需要同样的处理逻辑:switch (var) {case A:case B:case C: ... ... ...原创 2021-12-09 09:58:48 · 4360 阅读 · 0 评论 -
QTreeView/QTreeWidget设置行间距和行高
QTreeView/QTreeWidget设置行间距由于项目要求,需要设置Tree行的间距,在网上搜索发现大多数都是用的样式表QTreeView::item{ padding:10px;}或者QTreeView::item{ margin:10px;}但是在使用中发现这个样式只能修改行高,无法修改间距。所以查看Qt帮助文档,发现有QTreeView有drawRow接口,尝试重写该函数,发现能够实现间距调整void SettingTree::drawRow(QPai...转载 2021-12-03 22:07:38 · 8592 阅读 · 1 评论 -
Qt之QTableWidget的使用及常用设置
各种软件设计中,表格的使用非常频繁,下面介绍的是关于QTableWidget的使用以及常用属性的设置。(1)创建一个新的表格控件QTableWidget *table=new QTableWidget();(2)设置列数 table->setColumnCount(3);//设置3列注意:如果内容超过3列,则无法显示超过3列的内容,所以需要看情况重新设置列数(3)设置行数table->setRowCount(5);//设置5行注意:如果内容超过5行,则无法显转载 2021-12-03 21:16:02 · 11514 阅读 · 0 评论 -
QLabel实现的圆形图像
QLabel之动态阴影边框目前实现的效果如下:左右两边实现的方式不同:右边比较简单 min-width: 100px; max-width: 100px; min-height: 100px; max-height: 100px; border-radius: 50px; border-width: 0 0 0 0; border-image: url(H:/Qt Project/UIDesignTest/Heben.jpg)转载 2021-09-09 21:40:51 · 1773 阅读 · 2 评论 -
Qt窗口/控件樣式(字體等)跟隨主題變化注意點
注意點:通過setStyleSheet設置過樣式後,窗口/控件樣式將不再跟隨主題變化。若要樣式跟隨系統主題變化,需要用其它方式替換setStyleSheet方式。樣例一:QPushButton設置無框架,跟隨父窗口背景色setStyleSheet: m_iconButton = new QPushButton(this); m_iconButton->setCheckable(false); m_iconButton->setFixedSize(QSize原创 2021-09-08 17:25:33 · 325 阅读 · 0 评论 -
Qt 中设置窗体透明度的几种方法
1、设置窗体的背景色在构造函数里添加代码,需要添加头文件qpalette或qguiQPalette pal = palette(); pal.setColor(QPalette::Background, QColor(0x00,0xff,0x00,0x00)); setPalette(pal);通过设置窗体的背景色来实现,将背景色设置为全透。效果:窗口整体透明,但窗口控件不透明,QLabel控件只是字显示,控件背景色透明;窗体客户区完全透明。2、使用函数setAttribute转载 2021-09-08 09:20:35 · 5416 阅读 · 1 评论 -
Qt 之自定义布局管理器
简述手动布局另一种方法是通过继承QLayout类编写自己的布局管理器。下面我们详细来举一个例子-QCardLayout。它由同名的Java布局管理器启发而来。也被称之为卡片布局,每个项目偏移QLayout::spacing()。定义编写自己的布局,必须定义如下: 一种存储布局处理项目的数据结构,每个项目都是一个QLayoutItem,本例使用QList。 addItem() 如何添加项目布局。 setGeometry() 如何控制布局。 sizeHin...转载 2021-09-06 09:44:50 · 615 阅读 · 0 评论 -
Qt 之手动布局
简述手动布局,可以实现和水平布局、垂直布局、网格布局等相同的效果,也可实现属于自己的自定义布局,当窗体缩放时,控件可以随之变化。其对于坐标系的建立有严格要求,纯代码思维,使用复杂,不易维护,所以一般不建议使用。下面我们以简单的例子来讲解如何使用。事件在Qt之布局管理器一节中,我们介绍了对于手动布局的实现思路。通过QWidget::resizeEvent()来计算所需要分配的大小,并且给每个子控件调用setGeometry()。垂直布局简略图我们先简单看一个简略图,是一个一个转载 2021-09-06 09:37:56 · 369 阅读 · 0 评论 -
Qt中QMainWindow主窗口布局注意点
Qt中QMainWindow主窗口布局注意点1、当使用布局的时候,构建子控件的时候不需要指定parent,布局将会自动的指定parent(使用QWidget::setParent()),使它们成为安装了该布局的界面的子控件。布局中的控件是安装了该布局的界面的子控件,而非布局自身的,控件只能以控件作为parent,不能是布局。也可以在布局中使用addLayout()来添加布局,内部的布局就会变成它的子布局。2、若用设计器布局主窗口,生成的代码布局类对象的构造函数参数parent为ui->原创 2021-09-06 09:27:19 · 1451 阅读 · 0 评论 -
Qt中QMainWindow主窗口去除原有菜单栏和状态栏
一、可通过设计器如下图方式处理原创 2021-09-04 09:27:02 · 8062 阅读 · 1 评论 -
Qt中信号槽重载使用方法
Qt中重载信号的绑定方法:方法一:connect中使用SIGNAL()/SLOT()方法二:借助qOverload模板函数或类模板QOverload等。如下autoqNonConstOverload(TmemberFunctionPointer)Returns thememberFunctionPointerpointer to a non-constant member function: struct Foo { void overloaded...原创 2021-08-23 19:30:50 · 1086 阅读 · 0 评论 -
pkg-config的一些用法
我们在用第三方库的时候,经常会用到pkg-config这个东西来编译程序。那pkg-config究竟是什么呢?本博文简单地说一下。pkgconfig有什么用: 大家应该都知道用第三方库,就少不了要使用到第三方的头文件和库文件。我们在编译、链接的时候,必须要指定这些头文件和库文件的位置。 对于一个比较大第三方库,其头文件和库文件的数量是比较多的。如果我们一个个手动地写,那将是相当麻烦的。所以,pkg-config就应运而生了。pkg-config能够把这些头文件和库...转载 2021-08-08 18:34:18 · 1270 阅读 · 0 评论 -
QT D-Bus 复杂参数(自定义)传递
网上一搜,关于D-Bus和QT的资料不少,但是绝大多数都对传递自定义数据类型这个问题闭口不谈。看来这个有必要写个文章记录一下。首先要说的是,我这里不再介绍D-Bus和QDbus的基础知识,本文直击要点。另外本文参考了KDE的一些文档。需求:使用标准的信号和槽,通过QDBus传递自定义的struct或者class数据类型。首先,需要定义需要通过D-Bus传递的自定义数据类型,我们这里定义一个Message类型:#include <QtDBus>class Message{.转载 2021-07-26 15:06:40 · 1872 阅读 · 0 评论 -
QDBus使用
一.服务端1.需要导出的类继承QObject,将需要导出的接口放在public slots中。2.定义接口:Q_CLASSINFO("D-Bus Interface", "com.XXX.XXX.XX.Interface")3.生成XML接口文件Qdbuscpp2xml -M XXX.h -o com.xx.xxx.xml将类中导出的接口生成xml文件格式4.生成Adaptor文件Qdbusxml2cpp com.xx.xxx.xml -i XXX.h -a XXXAdaptor转载 2021-07-26 10:15:05 · 1256 阅读 · 0 评论 -
Qt Model/View(模型/视图)结构
Model/View(模型/视图)结构是Qt中用界面组件显示与编辑数据的一种结构,视图(View)是显示和编辑数据的界面组件,模型(Model)是视图与原始数据之间的接口。GUI 应用程序的一个很重要的功能是由用户在界面上编辑和修改数据,典型的如数据库应用程序。数据库应用程序中,用户在界面上执行各种操作,实际上是修改了界面组件所关联的数据库内的数据。将界面组件与所编辑的数据分离开来,又通过数据源的方式连接起来,是处理界面与数据的一种较好的方式。Qt 使用 Model/View 结构来处理这种关系,M..转载 2021-07-25 22:51:44 · 1059 阅读 · 0 评论 -
Qt 线程基础(QThread、QtConcurrent等)
使用线程基本上有种使用线程的场合:通过利用处理器的多个核使处理速度更快。 为保持GUI线程或其他高实时性线程的响应,将耗时的操作或阻塞的调用移到其他线程。何时使用其他技术替代线程开发人员使用线程时需要非常小心。启动线程是很容易的,但确保所有共享数据保持一致很难。遇到问题往往很难解决,这是由于在一段时间内它可能只出现一次或只在特定的硬件配置下出现。在创建线程来解决某些问题之前,应该考虑一些替代的技术: 替代技术 注解 QEventLoo.转载 2021-07-25 18:19:27 · 1111 阅读 · 0 评论 -
Qt - 换肤功能实现
https://blog.csdn.net/weixin_40774605/article/details/106242671转载 2021-07-24 00:02:40 · 307 阅读 · 0 评论 -
QT自定义精美换肤界面
陆陆续续用QT开发过很多项目,也用QT写过不少私活项目,也写过N个工具,一直梦寐以求能像VC一样可以很方便的有个自定义的界面,QSS的强大让我看到了很好的希望,辗转百度谷歌无数次,一直搜索QT相关的换肤文章,绝大部分的是一些简单的按钮文本样式,要做到整体换肤程度几乎不行,QTCN论坛里的奋斗的孩子写了个模仿360安全卫士系列,让我既惊喜有遗憾,惊喜的是能够用QT实现一个这么完整的360安全卫士界面,确实不错,也支持多种换肤,遗憾的是我下载过的是VC版本的,对于一直执着于用Qt Creator来开发的我来说.转载 2021-07-23 23:53:19 · 2072 阅读 · 0 评论 -
Qt5 -- 超好用的“deleteLater()“
C++中如果要在堆内存中创建和销毁对象需要借助关键字new和delete来完成, new操作符用于创建对象, delete操作符用于销毁对象。虽然随着计算机硬件的不断更新迭代, 内存越来越大, 但是对于一个计算机应用, 系统分配的内存是有限的, 而且”一旦越线“可能就会被系统强行kill, 所以内存还是弥足珍贵的。合理的利用”delete“可以有效减少应用对内存的消耗。但是delete的不合理使用常常导致应用crash。而”deleteLater()“可以更好的规避风险, 降低崩溃。一、 ”de转载 2021-07-23 22:54:46 · 3262 阅读 · 0 评论 -
Window.devicePixelRatio(设备像素比)
Window接口的devicePixelRatio返回当前显示设备的物理像素分辨率与CSS像素分辨率之比。 此值也可以解释为像素大小的比率:一个CSS像素的大小与一个物理像素的大小。 简单来说,它告诉浏览器应使用多少屏幕实际像素来绘制单个CSS像素。当处理标准显示器与HiDPI或Retina显示器之间的差异时,这很有用,后者使用更多的屏幕像素绘制相同的对象,从而获得更清晰的图像。您可以使用window.matchMedia()检查devicePixelRatio的值是否发生更改(例如,如果用户将..转载 2021-07-22 11:13:10 · 14552 阅读 · 0 评论 -
Qt 多线程之QObject::moveToThread
执行一个耗时的操作时,多线程是常用的选择,最常见的一个方式或许是继承QThread,然后实现其virtual void run()函数,又或者使用高级类,比如QtConcurrent。总之,好像“回字的四种写法”,当然不同情况下,每种方法各有优略而非孔乙己之纯属不知所云。Qt的官方文档如下:void QObject::moveToThread ( QThread * targetThread )Changes the thread affinity for this object and its转载 2021-07-17 11:09:07 · 1797 阅读 · 1 评论 -
Qt-QMake官方使用手册(翻译)
本文翻译自Qt 4.8官方文档。一、QMake使用QMake提供了一个用于管理应用程序、库、其它组件的构建过程的面向工程系统。QMake扩展了每个工程文件的信息,生成一个执行编译和链接过程的必须命令的MakeFile。1、描述工程工程文件.pro描述了工程信息。工程文件信息会被qmake用于生成包含构建过程中所需的所有命令的MakeFile。工程文件通常包含一系列头文件和源文件,通用配置信息以及音乐程序指定的细节,如应用程序的链接库、搜索路径。工程文件包含一定数量的不同元素,如注释、变量转载 2021-07-13 09:56:22 · 2022 阅读 · 0 评论 -
Qt调试技术
现在我们为您的基于Qt的软件的调试提供一些有用的提示。命令行参数当你运行Qt程序时,你可以指定几个命令行参数来帮助你调试。-nograb 应用程序不再捕获鼠标或者键盘。当程序在Linux下运行在gdb调试器中时这个选项是默认的。 -dograb 忽略任何隐含的或明显得-nograb。即使-nograb出现在命令行的最后,-dograb也会超过-nograb生效的。 -sync 在X同步模式下运行应用程序。同步模式强迫X服务器立即执行每一个X客户端的请求,而并不能使用缓存优化。它使得程序更转载 2021-07-12 14:26:23 · 735 阅读 · 0 评论 -
关于 QMAKE_POST_LINK和QMAKE_PRE_LINK使用的说明
qt的pro配置文件中也可添加各种编译前后的操作及配置,主要通过 QMAKE_POST_LINK和QMAKE_PRE_LINK;QMAKE_POST_LINK表示编译后执行内容QMAKE_PRE_LINK表示编译前执行内容他们支持的函数以及写法,可以在QtCreator的帮助中搜索qmake Function 查看详情说明(QT的帮助文档是我见过最详细的使用文档);比如copy文件如下:win32:CONFIG(release, debug|release){ SrcInclud..转载 2021-07-12 11:36:56 · 1036 阅读 · 0 评论 -
Qt中qmake的INSTALLS变量将编译文件拷到运行目录
找了好久都没有找到很清晰的说明。特地记录一下。下是qml-material.git项目的工程配置文件内容:TEMPLATE = libTARGET = materialCONFIG += c++11QT += qml quickandroid { QT += androidextras svg xml}HEADERS += plugin.h \ core/device.h \ core/units.hSOURCES += pl转载 2021-07-12 11:35:40 · 976 阅读 · 0 评论