![](https://img-blog.csdnimg.cn/5142ff17771b445483712a68890008f5.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
Qt
文章平均质量分 66
本栏主要是积累qt在研发过程中出现的问题以及自己在摸qt过程中对其相关掌握型知识理解, 希望能够对你有点帮助,
道阻且长,行则降至
文案太难, 本人很懒
展开
-
Qt QScript 之 C++/JavaScript相互调用
ECMAScript 是一个语言规范(Language Specification),可以理解为一种脚本语言规范。目前这个语言规范由这个组织在维护。而JavaScript 是ECMAScript 这种语言规范的一种具体实现。当前存在几种JavaScript实现,比如Apple的,Google的[v8] (https://v8.dev/)这两种是比较有名气的。总的来说, 一些更详细细节请参考感兴趣的同学可以自行定位学习, 最好的文档都是看官方的, 看别人的都带有个人主观经验, 并不一定是最合适自己的。原创 2024-05-27 18:58:32 · 952 阅读 · 0 评论 -
”QTimer“ 与 ”QThread“ 的爱恨情仇
通过如下设计, 主线程负责子线程开启与终止, 定时器开启与停止, 但是定时器是在子线程中负责创建。分别来进行如下情况测试, 并一一对如上进行验证说明。, 后来竟发现, 由于创建Timer子线程已经结束了,才会报如上错误。主要是讲解QTimer 与 QThread 结合时候, 容易出现各种各样警告, 如下。间接说明启动TImer时与创建QTimer线程不在一个线程, 当我很好奇为啥不报。说明定时器只能在已经存在被QThread开启的线程使用。目前来说经常遇到如上三条, 后面如有遇到我再补上。原创 2024-02-29 15:09:59 · 892 阅读 · 0 评论 -
窗口一片空白无法问题
我出现这个问题是在把unix下代码, 移植编译跑到windows下, 然后在windows下编译运行通过后, 发现窗口没有显示, 但是任务栏下方是有icon显示, 鼠标放上去hover还能显示对应的windowstitle.本人总结就是确保对应窗口构造函数一定能完成, 再次确保对应show相关属性透明度(不为0), geometry,postion在可见区域内, 以及是否对showEvent时间重构处理是否ok。窗口一片空白无法问题, 这个问题具体要依据实际情况。最终我出现此问题的解决方案是 属于第一种。原创 2024-01-02 20:05:15 · 435 阅读 · 0 评论 -
QPainter打印札记
主要是记录一下利用Qt 结合打印机(zebra, deli)打印相关条码或者label marker打印以及遇到问题原创 2023-12-26 19:57:45 · 1073 阅读 · 0 评论 -
QPrinterInfo::availablePrinterNames()返回空列表
我出现这个问题是由于, 我在QtCeaotr运行时候是没问题的, 但是打包exe的时候程序却返回空列表.,刚开始还是有点困惑。解决遇到QPrinterInfo::availablePrinterNames()返回为空的问题。没有这个文件夹或者dll 导致windows 下没法调用底层库去查找设备。如果设备和打印机中显示时仍然有打印机, 但这个却返回空列表, 原因查找。匹配不匹配或者是否有这个文件夹。出现问题, 参考这篇博客。如果在运行程序路径目录下。原创 2023-12-07 19:40:53 · 648 阅读 · 0 评论 -
Qt设置应用程序字体
通用做法在qrc中添加字体资源,SourceHanSansCN-Medium.ttf, 然后在main函数中动态加载字体文件。如果后期要更换但这个文件过大的话, 建议改为动态加载绝对路径文件。Note: 一定要确保对应SourceHanSansCN-Medium.ttf 文件是正确的, 不然字体加载会返回-1, 无效。由于微软雅黑字体具有版权效应, 导致实际项目中需要load其他字体, 比如说应用程序默认字体为思源黑体-Mdeium黑度。原创 2023-12-07 19:32:00 · 1053 阅读 · 0 评论 -
qt pro如何增加自定义值为的字符串的宏
如果对于有特殊定义的字符, 那就特殊处理加个转移字符.这个定义是qt 声明宏定义关键词。整理pro 增加自定义值是字符串的宏。qt pro 首先肯定离不开。原创 2022-11-06 19:00:20 · 1082 阅读 · 0 评论 -
QSqlTableModel结合使用数据库心得
如果创建了多个数据库连接,请在调用addDatabase()时为每个数据库连接指定一个唯一的连接名称。使用带有连接名称的database()来获取该连接。使用带有连接名称的removeDatabase()来删除连接。如果您试图删除其他QSqlDatabase对象引用的连接,QSqlDatabase将输出警告。使用contains()查看给定的连接名称是否在连接列表中。原创 2023-11-02 20:18:00 · 379 阅读 · 0 评论 -
基于折线图对QChartView了解
图表中,一般都有 X、Y 坐标轴,复杂一些的还带有 Z 轴。对应到 Qt 的图表也有 X、Y 轴对象。但是今天,我们先不展开介绍。如果我们不创建轴坐标对应的对象,可以使用 Qt 的默认轴对象。后面我们会介绍用法。原创 2023-10-22 16:12:39 · 228 阅读 · 0 评论 -
Q_FLAG与Q_ENUM
宏Q_ENUM会向元对象系统注册一个枚举类型, 它必须放在具有Q_OBJECT或Q_GADGET宏的类中的枚举声明之后(不然放在前面编译器会报错)。Q_ENUM宏引入自Qt5.5版本,之前版本的Qt请使用Q_ENUMS宏,但Q_ENUMS宏不支持QMetaEnum::fromType()函数(这也是Q_ENUMS被弃用的原因)如果要将QFlags用于自己的枚举类型,请使用Q_DECLARE_FLAGS()和Q_DECLARE_OPERATORS_FOR_FLAGS()。此宏向元对象系统注册枚举类型。原创 2023-10-17 19:27:40 · 225 阅读 · 0 评论 -
QImage to cv::mat
狠话不多 直接上代码。原创 2023-05-23 12:02:14 · 103 阅读 · 0 评论 -
趣谈QProcess未能打开外部程序问题
在程序中的目录都是相对于工作目录而言的./xxx.exe 就意味着要在工作目录中去找, 而我是把这个放在exe执行目录(程序运行目录)。如下设置exe执行目录与工作目录 working directory 保持一致。当时我写了一个demo 想要验证下程序去跑标定, 结果没起来, 最终发现是路径不对, 导致没起来。这篇博客由来是由于当时QProcess去调用外部小工具, 结果发现按照通用接口写入是。最终问题在于程序执行目录与当前工作目不一致。很明显在demo中他们相差了一个目录。结果发现都对应小工具没起来。原创 2023-03-12 16:20:42 · 1484 阅读 · 0 评论 -
Qt::QLocale
QLocale:地方因此本质来说: 它是一个 pair.在应用程序启动时,QLocale 支持由系统本地配置中决定的default locale;当前< language/country >pair 有构造函数确定后, 可能会有如下三种情况发生。最终最终获取的是数据来源于windows 区域格式设置。如下图所示:原创 2022-12-07 19:28:39 · 434 阅读 · 0 评论 -
qtui 假死
这篇博客主要目的是说明Qt窗口最小化还原窗口不刷新或者是白色或者是透明, 此时程序还依然能够响应此事件。但是我的问题不是这个问题, 只是方便整理此类型问题而已。最小化窗口后无法还原, 背景透明与无窗口提示设置导致, 还说是qt 5.2之后解决。但问题是我的使用版本5.15.2.此上述搜到的, 只是作为参考而整理, 目前遇见的并不是此类问题。所以方案是否可行, 请读者因自身实际情况酌情分析,起初我还以为是主线程阻塞了, 首先想到的是死锁, 结果通过vs堆栈以及线程使用情况, 没发现异常情况。原创 2022-10-23 12:25:18 · 862 阅读 · 0 评论 -
qt中QCameraInfo::availableCameras()返回size为0
解决QCameraInfo::availableCameras() 返回相机列表数目为0问题。如果你能确定系统是有相机驱动, 包含本身自己内置的(hdmi 也是)或者自己写的安装的。确保有对应版本的mediaservices文件夹存在.首先系统本身就没有额外相机驱动这个就不用考虑。此时如果返回的可利用相机数目size依然是0。原创 2022-10-19 20:56:45 · 1014 阅读 · 0 评论 -
Qt之QNetworkAccessManager
首先它是隶属于QtNetwork, QtNetwork是Qt网络操作模块,提供了基于TCP/IP的各种API,除了之前介绍过的最基础的TCP及UDP通讯:QTcpSocket-Qt使用Tcp通讯实现服务端和客户端、QUdpSocket-Qt使用Udp通讯实现服务端和客户端,还提供了HTTP、HTTPS、FTP等高级API,并统一使QNetworkAccessManager进行操作。2: 提供HTTP、HTTPS、FTP等高级API, 支持TCP/UDP.1: Ftp 实现文件上传与下载。原创 2022-09-24 18:08:19 · 981 阅读 · 0 评论 -
/Zc:strictStrings配置
目的通常在Qt pro 配置文件中, 会有如下设置# Qt pro 禁用字符串文本类型转换win32: QMAKE_CXXFLAGS_RELEASE -= -Zc:strictStringswin32: QMAKE_CFLAGS_RELEASE -= -Zc:strictStringswin32: QMAKE_CFLAGS -= -Zc:strictStringswin32: QMAKE_CXXFLAGS -= -Zc:strictStrings此文主要是了解 -Zc:strictStrin原创 2022-05-06 21:53:44 · 1597 阅读 · 0 评论 -
让人头疼的make: *** No rule to make target ` ‘, needed by xxx. Stop.
目的起因是我在merge别人代码时候, 进行编译就报了这个问题“make: *** No rule to make target mainwidget.ui ‘, needed by ui_mainwidget.h. Stop.” , 这个时候有熟悉Qt小朋友 就会第一时间反应 自己的mainwidget.ui 没有上传, 这个就是我奇怪的点了, 我好像没有直接用mainwidget啊。于是乎, 清除中间文件, clear, 重新qmake, 重新编译构建,然后奇怪的知识又增加了, 没啥卵用啊。秉着原创 2022-05-02 16:27:34 · 4020 阅读 · 0 评论 -
Qt: QPushButton 常见样式设置
目的主要用来整理QPushButton 样式相关设置, 方便后期能够进行设置。鉴于博主1、无样式的按钮2、改变字体颜色color:#ff0000;3、改变字体font-family:Microsoft Yahei;4、改变字号font-size:15pt;5、改变背景颜色background-color:#c3e9e5;6、设置上边框为2个像素,样式为实线,颜色为黑色border-top:2px solid #000000;7、设置所有边框为2个像素,样式为实原创 2022-03-30 21:31:58 · 36944 阅读 · 4 评论 -
LIBS 与 PRE_TARGETDEPS in .pro files of Qt 区别
目的了解pro 文件配置中关于 LIBS 与 PRE_TARGETDEPS 区别区别LIBS:Specifies a list of libraries to be linked into the project. If you use the Unix -l (library) and -L (library path) flags, qmake handles the libraries correctly on Windows (that is, passes the full path原创 2022-02-08 22:05:33 · 1897 阅读 · 0 评论 -
Qt研发易忽略问题整理(二)
说明Qt研发易忽略问题整理(一)1. 对于控件位置可能会影响其value的值问题。这类问题容易发生在依据工程中数据设置某个控件位置(例如依据QSlider宽度和数据值定位控件位置),哪怕你是有resizeEvent,当控件在没show出来的之前,其pos, geometry, 如果没有resize触发。最初的值是与ui拖拽设计有关(就是ui拖拽的pos geometry)的,这个时候尽量保证ui宽度是正确的宽高。 如果是自定义的ui(不通过xxxx.ui)生成,那你也需要初始化其值,并且要保证其值设置原创 2022-01-25 09:46:38 · 522 阅读 · 0 评论 -
qt获取当前窗口的dpi--QOpenGL
当前窗口的dpi, 以及QOpengl-devicePixelRatio原创 2021-12-20 13:59:06 · 1044 阅读 · 0 评论 -
仿Qt原生写一个QRubberBand,以及所悟
QRubberBand原创 2021-12-15 11:10:14 · 388 阅读 · 0 评论 -
QVariant
目的主要是为了熟悉QVariant与Qt 通用数据类型或者自定义数据类型进行转换.QVariant类充当最常见Qt数据类型的联合。因为c++禁止union包含具有非默认构造函数或析构函数的类型,所以大多数有趣的Qt类都不能在union中使用。如果没有QVariant,这将成为QObject::property()和数据库工作等的问题。Qt data type1: 第一种转换QIcon ICON("xxx.png");QVariant variant = ICON;QIcon icon = v原创 2020-10-20 20:41:05 · 699 阅读 · 0 评论 -
QFile/QFileInfo/QFileInfoList/QDir
这几个经常在Qt用在工程管理模块中对相关工程目录、以及工程目录下文件进行操作。QFile 主要是从文件着手,着重于对文件的读写、打开、关闭操作。QDir 主要是从目录着手、着重于对目录路径、获取某个目录下的文件信息QFileInfoList,或者QStringlist存放目录下所有文件或者文件夹(目录)、通过在目录下进行相关排序进行筛选文件或者目录QFileInfo 着重于对文件信息(是不是...原创 2019-04-03 23:30:15 · 860 阅读 · 0 评论 -
由位置,坐标移动引起的UI部件设计
目的通常我们都会应用到拖动某个小部件, 然后获取部件的位置pos, 发送信号或者以及相关需求处理。因为窗口,控件的移动,拖动导致pos()变化,从而引起定义的属性变化设置,我们常用此来自定义部件组合成更复杂的控件. 这篇博客会以doubleslider拖动句柄为例。位置通常一个子控件的位置pos是以父窗口中左上角为原点。具体以MainWindow 中拖入一个 pushButton为例, 它的geometry 属性表明此时是以在父窗口MainWindow位置是70,90 长宽为231,71。当我再原创 2021-08-04 11:29:10 · 112 阅读 · 0 评论 -
Qt核心机制之信号槽
前言前面讲了Qt module小模块介绍, 这篇博客主要针对小模块中核心功能机制–信号槽进行详解。众所周知, 信号槽是我们在Qt中常用的一种通信机制(同步, 异步都可)。我们常常通过connect去连接信号槽, 具体形式可参考Qt connect几种写法与连接方式...原创 2021-05-17 20:17:16 · 630 阅读 · 0 评论 -
QT MVC 内存管理
目的主要是是探讨对于MVC,内存是否要进行管理, 以QLIstWidget, QLIstModel, QListWidgetItem 为例。如果绑定了某个QWidget 是否要手动删除item 与 对应绑定的QWIdget。 结果是不用的。验证已添加10000个item为例。没有添加item,只有listwidget, 内存为9.9M, 调用clear 内存具体波动。有item, ,有listwidget, 没有绑定 QWidget , 内存为11.1M, 调用clear内存将为10.8M原创 2021-01-14 20:45:23 · 355 阅读 · 0 评论 -
repaint与update区别
序言这个起初只是了解到这两个函数对界面实现了刷新,然后具体更细节方面的就没多多接触了解,直到我遇到了一个问题,就是断线之后弹出框先显示倒计时,然后连上网络之后弹出框隐藏,再次去测试短线问题然后发现一直会先显示上次的倒计时,然后恢复到设置的默认的倒计时值。我尝试过在隐藏后清空label上的字,甚至添加了一定延时也没有解决问题,然后想起可能是在隐藏的时候还没来得及去刷新界面导致所致,然后我在隐藏的...原创 2019-09-23 09:05:56 · 1067 阅读 · 0 评论 -
画线出现锯齿解决方案
一般在划线过程中如果将整个线画出来不断线,是不会有锯齿的。如果是将一个path分几次绘画那将会在每次截断点处类似于重画,导致出现一些锯齿。如果在绘画过程中,采用非矢量图形(位图)去绘画,绘画的图像将会由一个网格中的像素点的位置和色彩值来决定.每一点的色彩是固定的,当我们在更高分辨率下观看图像时,每一个小点看上去就像是一个个马赛克色块再放大缩小过程,图形会失真,在于那他绘画的像素再放大后就是一个像素...原创 2019-10-25 23:34:33 · 4294 阅读 · 0 评论 -
Qt设置文字长度错过宽度时后面出现省略号
需求设置某个编辑框,当文本长度比显示宽度要长时, 依据需求要将文本后面显示为省略号。我在设计时QFontMetrics metrics(m_contentFont);QString showText = metrics.elidedText(content, Qt::ElideRight, m_pixResolution.width() - 20); ui.label->setText(showText);结果如下这种设计有一个问题就是, 当我输入QString 哪怕包含换行符时,原创 2021-09-24 19:54:37 · 923 阅读 · 0 评论 -
Qt构建套件
目的Qt 安装过程中默认是有自己的套件, 我们可以选择自己实际选择对应套件, 每一个套件都有自己对应的Qt versions(qmake设置),编译器g++设置,debug(dgb路径设置),。 由于要把程序烧录移植到指定机器,由于该机器运行Qt需要特定对应的编译构建套件, 不能用Qt安装的默认的构建套件。...原创 2020-12-28 09:20:48 · 4631 阅读 · 2 评论 -
QToolButton设置icon与字体居中
目的设置QToolButton icon 与 字体 居中显示, 网上有挺多文章说明的, 有些我设置了无效, 我亲自测试了下, 如下是有效果的QToolButton{ color: #b9b9b9; font-size: 12px; font-weight: normal; border: 2px solid #b9b9b9; border-radius: 3px; qproperty-icon: url(":/btn_pc_dis.png") center; qpro原创 2021-09-16 10:50:02 · 10127 阅读 · 0 评论 -
Qt设置常见窗口背景色几种方式
常见窗口背景色总结qt 常见设置QWidget 类型窗口背景色几种方式setStyleSheetui.widget->setStyleSheet("QWidget{background: black;}");setPalettesetPalette(QPalette(Qt::white));setAutoFillBackground(true));自定义窗口paintEventvoid MyWidget::paintEvent(QPainterEvent* event)原创 2021-10-25 21:15:27 · 8017 阅读 · 0 评论 -
QML之粒子系统
Particle System(粒子系统)这里主要是讲解一下粒子系统的属性。粒子系统可以实现一些烟花、绚丽的动画效果等,具体属性可以参看网址:https://blog.csdn.net/RGBMarco/article/details/81102663。...转载 2019-06-09 11:53:52 · 442 阅读 · 0 评论 -
原生QMessageBox中ok,cancel键显示中文
目的在多语言翻译时, 将原生的QMessageBox显示为中文。 QMessageBox box(QMessageBox::Warning,"提示","中文按钮"); //Warning 中W要大些 box.setStandardButtons (QMessageBox::Ok|QMessageBox::Cancel); box.setButtonText (QMessageBox::Ok,QString("确 定")); box.setButtonText (QMessag原创 2020-12-07 19:59:14 · 902 阅读 · 0 评论 -
元对象系统如何识别自定义类型
序言如何识别自定义类型,并将自定义类型对象通过信号槽传递给接收对象,需要依靠Q_DECLARE_METATYPE(Type)宏进行修饰,其中你的类必须包含该类型必须有公有的 构造、析构、复制构造 函数,如果想在(queued)信号和槽系统中使用或者想在QObject的属性系统中使用,就必须使用qRegisterMetaType()这个函数注册到元对象系统中,这个在qml中调用C++时常用到。代...原创 2019-10-10 09:40:58 · 189 阅读 · 0 评论 -
Qt界面切换出现闪烁现象
前言常见多个子界面切换出现闪烁现象,父子窗口相互显隐导致闪烁现象等等,无非就是旧界面close,新界面show导致闪烁现象。一般来说旧窗口在显隐后,新窗口在其后也跟着显隐。当windows在改变窗口时候先重画父窗口,在重画子窗口,子父窗口重画过程一般无法在一个刷新周期内(与主频有关)完成,就会出现闪烁现象。但是要注意show 与 hide方向(一般是先show 在hide 可以减少视觉感)。...原创 2019-07-24 09:08:19 · 5131 阅读 · 0 评论 -
Qt文件翻译
前言Qt实现多语言翻译,需要QTranslator translator;去load不同对应的翻译文件(.qm),然后执行安装即可installTranslator即可。前提条件确保要实现翻译的字符串使用国际化标准,及使用tr();至少要载入翻译文件(.qm);如何生成qm文件1、在该应用程序的.pro文件文件中添加TRANSLATIONS项,可分别对应于不同的语言,如:sprea...原创 2019-07-18 08:56:52 · 495 阅读 · 0 评论 -
QWidget与QGraphics体系中子控件位置设定
目的之前不久才接触到QGraphics体系,刚开始以为QGraphics体系较为复杂,经过一段时间接触,发现和QWIdget体系其实并没有太大差异,也没有想象的那么复杂。当然QML也有自己位置设定与布局,但是以后在做介绍。QWidget体系QWidget 是所有QWidget体系窗口控件基类,基于它我们可以实现自己特定窗口。设置前后位置是主要是用raise(),underStack()...转载 2019-07-05 08:50:17 · 1214 阅读 · 0 评论