![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
QT
文章平均质量分 51
thequitesunshine007
探索者
展开
-
QPlainTextEdit实现不同行显示不同颜色
/ 根据需求设置新追加的内容格式,比如颜色。// 恢复光标到文本末尾。原创 2024-06-07 13:47:34 · 242 阅读 · 0 评论 -
QT之可拖动布局研究
最开始只用到了最基本的水平布局 、垂直布局。它的好处就是窗口整体缩放后,控件也自动等比例缩放。但是比如水平布局之中的控件宽度比例、垂直布局之中的控件高度比例都是固定的。平时也不怎么开发界面,最近有个需求,想界面上的控件布局满足以下:1)窗口整体缩放后,控件也自动等比例缩放。2)与很多商业化软件或者很多IDE一样,控件支持鼠标拖动调节大小。比如vs中的很多窗口可以拖动来控制它们大小。环境:vs2019 + Qt 5.15.2。原创 2024-06-01 00:12:27 · 518 阅读 · 0 评论 -
VS2017中集成QT环境,Qt关键字下面出现红线,无法解析
可以看到,工程默认的附加包含目录已经含有Qt_INCLUDEPATH_,但是电脑上并没有Qt_INCLUDEPATH_这个环境变量。如果不想设置 Qt_INCLUDEPATH_环境变量,那么就在VS中添加附加包含目录。那么新建Qt_INCLUDEPATH_变量,然后重启VS即可。右键打开工程属性页。原创 2023-03-09 11:40:33 · 656 阅读 · 0 评论 -
关于在QT子线程中使用QTimer的几点体会
2)主线程发送信号后,让子线程去控制QTimer启动,但QTimer会奇怪的不启动(无法触发定时器timeout槽函数)。但可以在主线程里面去启动子线程的QTimer对象(要暴露出public接口),同样也可以在主线程里面去关闭子线程的QTimer对象。5)个人不太建议在QT子线程中使用QTimer做一些定时任务,操作起来不是很友好,尤其是在启动、退出、消息处理实时性把控等方面。3)在程序退出时,当子线程中的QTimer还在运行时,会出现错误,应该先关闭子线程中的QTimer。原创 2022-12-15 16:09:29 · 2595 阅读 · 0 评论 -
qt信号与槽连接的书写规范
在传递int,double,char,bool,float等类型的时候没问题,但是传递比如QList类,或者自定义的结构体、类等时,连接将会失败。3.信号和槽之间有参数传递,但是使用connect的时候在槽函数或者信号或者二者同时加入了形参,比如下面的两个connect,第一个连接因为有形参,不会连接成功。2.信号和槽之间存在参数传递,但是二者的参数数量或者类型不一致(信号里的参数数量可以多于槽函数里的参数数量,但是二者都有的参数,类型必须对应);5:connect函数书写不规范,以下2种方式是对的.原创 2022-12-12 14:28:32 · 430 阅读 · 0 评论 -
VS2019+QT 报错“C2001常量中有换行符“
VS2019+QT 报错"C2001常量中有换行符",且中文在界面上打印出来是乱码。解决办法:第1)步:在VS中的“高级保存选项”(自行查询如何在VS找到该操作按钮)中,设置源代码文件的格式,如下图:第2)步:在出现中文的代码文件中添加: #pragma execution_character_set("utf-8") 在对QString类型变量赋值时,可使用 QString::fromLocal8Bit("中文")格式。亲测可行!中文不再乱码...原创 2022-06-13 23:46:32 · 1271 阅读 · 0 评论 -
Qt Creator远程调试嵌入式ARM开发板
1 环境Win10 64位系统上通过Virtual Box安装了一个Ubuntu虚拟机。ubuntu的版本:Linux kernel 4.15.0-142-generic #146~16.04.1-Ubuntu SMPUbuntu虚拟机中安装了Qt Creator,其版本为:Qt Creator 4.5.1Based on Qt 5.10.1 (GCC 5.3.1 20160406 (Red Hat 5.3.1-6), 64 bit)Built on Feb 10 2018 04:2.原创 2021-08-19 11:30:04 · 3462 阅读 · 1 评论 -
QT程序利用共享内存实现单例启动
1 实现原理 程序在启动第一个实例时,会先尝试attach一块指定key的共享内存,由于这个共享内存事先并不存在,所以尝试attach失败。失败之后,第一个实例会create这块指定key的共享内存。 当程序启动第二个实例时,依然会先尝试attach一块指定key的共享内存,由于这个共享内存刚被第一个实例创建,所以尝试attach返回true。于是得知,当前实例并非第一个实例,便不允许第二个实例继续启动。 流程图如下:Ps: ...原创 2021-08-11 16:57:28 · 656 阅读 · 0 评论 -
设置Qt程序开机自启动(windows版本)
文目录前言 一、pandas是什么? 二、使用步骤 1.引入库 2.读入数据 总结前言本文展示在windows环境下,通过代码实现更改系统注册表的方式来实现程序的开机自动启动。一、注册表需要更改的系统注册表为:HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\CurrentVersion\\Run二、代码演示1.头文件头文件autorun.h代码如下(示例):(只有短短几行)#ifn...原创 2021-08-11 14:30:29 · 2205 阅读 · 0 评论 -
QT样式表的使用
样式表是啥?QT样式表可以让你自定义任何一个QT控件的样式包括颜色、边框、背景等等(你想的到样式都可以),Qt样式表的概念、术语和语法与HTML的CSS样式表类似。设置样式表的3种方式1, 在整个应用程序上设置//QApplication::setStyleSheet()在整个应用程序上设置,一般在main()函数中:QFile file(":/qss/abc.qss"); //工程控件样式表需要在qss/abc.qss里面file.open(QFile::ReadOnly);styleSh.原创 2021-06-24 17:29:11 · 181 阅读 · 0 评论 -
如何在QtCreator的.pro文件中实现debug/release模式下加载不同的动态库
在.pro文件中,实现如下配置:CONFIG += debug_and_releaseCONFIG(debug, debug|release){ INCLUDEPATH += ./ \ /usr/local/opencv3.4.6_debug/include \ /usr/local/opencv3.4.6_debug/include/opencv \ /usr/local/opencv3.4.6_debug/include/原创 2021-04-22 09:27:34 · 1184 阅读 · 0 评论 -
使用QTCreator编程时,如何利用dmp文件定位程序奔溃
写这篇文章之前,看了一些其他人的博客,但不是很详细,缺这少那的,好多都是复制粘贴别人的东西。自己动手弄了弄,可以使用,就记下来备忘与分享。前言、开发环境说明编程IDE为:QTCreator。 Qt版本为5.12.2,编译器为安装VS2017社区版时自带的MSVC2017,32bit。一、 使得dmp文件能产生1、在pro文件里添加:#设置编译选项生成dmp文件QMAKE_CFLAGS_RELEASE = -O2 -MD -ZiQMAKE_LFLAGS_RELEASE = /INCREMENT原创 2021-03-10 10:19:46 · 1524 阅读 · 1 评论 -
QPushbutton设置icon和文字 (文字在图标下方)
1.使用系统自带api QIcon myicon1; myicon1.addFile(tr(":/image/Resource/new.png")); ui->new_btn->setIcon(myicon1); ui->new_btn->setIconSize(ui->new_btn->size()); //ui.btn_calib->setIconSize(QSize(90, 90));原创 2021-03-09 17:00:30 · 15497 阅读 · 1 评论 -
Qt程序中播放gif动画,但安装包拷贝到其他电脑上无法播放
本人在自己电脑开发调试的时候,能正常播放gif。1,实现方法本人是采用QLable控件作为播放载体:主要实现的步骤如下:1)QMovie * movie = new QMovie(":/image/Resource/start_1.gif");ui->movie_lbl->setMovie(movie);movie->start();2)结束时调用movie->stop();2,安装包拷贝到其他电脑上无法播放的问题原因是其他电脑上没有安装QT,尤其是没有QT中的原创 2021-02-07 17:23:48 · 430 阅读 · 0 评论 -
Qt之程序发布以及打包成exe安装包
https://www.cnblogs.com/linuxAndMcu/p/10974927.html转载 2020-12-29 08:46:37 · 96 阅读 · 0 评论 -
QTableWidget插入控件及常见用法
theTableWidget->horizontalHeader()->setStyleSheet("QHeaderView::section{background-color:rgb(21,79,106);font:13pt '宋体';color: white;};"); theTableWidget->horizontalHeader()->setHighlightSections(false);//表格元素被选中时,表头颜色不变化 theTableWidget原创 2020-12-28 17:23:59 · 1404 阅读 · 0 评论 -
在QTableWidget中,如何释放使用setCellWidget添加的控件元素
QTableWidget的用法原创 2020-12-28 17:06:12 · 3563 阅读 · 5 评论 -
Qt中按钮图标的设置、按钮按下时浮动效果设置 以及 QT的EXE程序图标设置
本文内容皆为Qt 5.13版本。 开发环境QTCreator ,若是 VS+QT插件环境则可能有略微差异。1 Qt中按钮图标的设置 QIcon myicon1; myicon1.addFile(tr(":/image/Resource/new.png")); ui->new_btn->setIcon(myicon1); ui->new_btn->setIconSize(ui->new_btn->size()); //ui.btn_calib->setI原创 2020-12-24 09:29:23 · 5015 阅读 · 0 评论 -
QtCreator 实现Qt程序启动画面
QT版本5.13。这种功能没必要理论分析。直接上代码吧。连续显示三幅画面,每个画面持续1秒!实现伪动画效果。 可根据需要自行调整!真动画实现也不难(动画资源不好弄),网上也有很多资料。#include "mainwindow.h"#include <QApplication>#include <QIcon>#include <QTextCodec>#include <QSplashScreen>#include <QPixmap>原创 2020-12-23 18:00:48 · 275 阅读 · 0 评论 -
Qt项目中删除多余的资源文件(图片文件)后编译报错“依赖文件找不到”
本人QTCreator版本 5.13.项目中删除了一些多余的资源文件(图片文件)后编译,报错“依赖文件找不到”,解决办法找到项目运行文件夹(例如build-xxx-Debug或者是项目自身目录),将其中的Makefile、Makefile.Debug和Makefile.Release删除,再重新编译即可。...原创 2020-12-23 17:37:00 · 1772 阅读 · 0 评论 -
Qt中fopen新建文件,路径中含有中文路径时新建失败!
又…又…又是中文字符导致的该问题。何时全球能都使用汉语呢!#include<QTextCodec>//加入该头文件 QString filePath = “xx/xx/xx.xx”; QTextCodec *code = QTextCodec::codecForName("GB2312"); std::string name = code->fromUnicode(filePath).data(); curFd = fopen(name.data(),"w+"原创 2020-12-18 09:34:11 · 891 阅读 · 0 评论 -
(Qt中添加编译选项)QT在交叉编译时出现parameter passing for argument of type ‘std::_Rb_tree xxxxx changed in GCC 7.1
QT版本都是5.1x。先是在Ubuntu机器上写的代码,GCC版本为5.4,代码编译无 任何警告。后来移植到开发板(GCC版本为7.1)进行编译时,提示这种警告。 发生在代码中对std::map的erase操作这一行代码上。类似于 itor = infoMap.erase(itor);不知这种警告有何种不良影响,但是几经检查,代码语法是没有错的。STL中map的元素删除不就是这样子吗。解决办法:在项目文件 xxxx.pro中添加下面行:QMAKE_CXXFLAGS += -Wno-psabi再原创 2020-12-01 18:41:04 · 2770 阅读 · 0 评论 -
QT中为PDF添加水印
前不久在上一篇博客中演示了如何在QT中创建并编辑PDF文件,参见:https://blog.csdn.net/thequitesunshine007/article/details/109720755现在在其基础之上,想要增加背景水印。代码如下:#include <QtPrintSupport/QPrintDialog>#include <QtPrintSupport/QPrinter>#include <QPainter>#include <QFont原创 2020-11-20 18:53:56 · 1156 阅读 · 0 评论 -
QT绘制PDF文件
近期需要使用PDF文件来生成数据报告。网络上有一些PDF的开源库,使用这些库往往需要编译安装,并且要花很多时间去研究原生接口。作为一个巧妙的(浮躁的)攻城狮,又正好在使用QT框架编写程序,灵光一闪,何不借助于QT这条大腿去实现PDF文件的创建呢,一试QT还真能很好的支持该需求。本人所使用的:QT版本:5.1x语言: C++第一步:定义一个打印机//定义打印机 QPrinter text_printer; text_printer.setOutputFormat(QPrint原创 2020-11-16 15:09:52 · 1301 阅读 · 11 评论 -
Qtcreator常用快捷键总结
=Qtcreator中常用快捷键总结===============F1 查看帮助F2 跳转到函数定义(和Ctrl+鼠标左键一样的效果)Shift+F2 声明和定义之间切换F4 头文件和源文件之间切换Alt+0 显示或者隐藏侧边条,编辑模式下起作用(有时写的函数太长,屏幕不够大,就用这个)Ctrl+Space 自动补全(貌似会和输入法的切换冲突)ESc 切换到编辑模式Alt(按住)+ Enter 将光标移动到原创 2020-11-02 17:29:33 · 382 阅读 · 0 评论 -
VS2015+QT5.6.1环境配置后,在VS中双击无法打开*.ui文件
在环境都搭建好以后,在VS中新建了一个QT界面工程。双击*.ui后,期望得到Qt designer那种直接进入拖拉控件进行编辑的操作界面。but 并不能得到预期结果。解决方法如下:第1步:在【解决方案资源管理器】中,右击你的 xxx.ui文件,选择【打开方式】,此时列表中默认值是【 Qt designer】,选中它,点击【移除】按钮。然后点【添加】按钮,在弹出的窗口中“浏览”,选择你Q...原创 2020-04-08 14:39:54 · 4721 阅读 · 20 评论 -
QT的内存管理机制
内存管理是指程序对计算机内存资源的分配和使用。内存管理的目的是高效、快速分配内存资源并在适当的时候释放和回收内存资源。 常见的内存管理机制:垃圾回收机制(.Net / Java),手动(C/C++),对象树(QT) 简而言之: 所有继承自QOBJECT类的类,如果在new的时候指定了父亲,那么它的清理时在父亲被delete的时候delete,所以如果一个程序中,所有的QOBJ...原创 2020-04-14 17:13:28 · 432 阅读 · 0 评论 -
QT两个子线程之间通过信号-槽通信
假设两个子线程A、B均是通过继承Object类然后使用官方推荐的moveToThread方式创建的。QThread* threadObjThreadA = new QThread();threadObjA = new ScanThreadObj(NULL);threadObjA ->moveToThread(threadObjThreadA );QThread* threadObj......原创 2020-04-13 18:00:59 · 5705 阅读 · 15 评论 -
QT程序实现单例启动
现实应用中在很多场合下,要求程序只能启动一个实例。比如,Windows PC端只允许启动一个任务管理器。目前使QT运行一个实例有以下几种方式:1.QSharedMemory。使用共享内存,当第二个进程启动时,判断内存区数据是否建立,如有,则退出; 这种方式有弊端,在程序发生崩溃时,未及时清除共享区数据,导致程序不能正常启动.2.QtSingleApplication。使用QT...原创 2020-05-07 14:10:39 · 1413 阅读 · 0 评论 -
VS2015 + QT集成环境下设置exe图标
1.准备ico图标土建一个好用的在线制作图标网:http://www.bitbug.net/2.设置exe图标在VS中选中解决方案,鼠标右键点击,“添加”,“资源”,“Icon”,“导入”,然后选择图标即可,它会生成一个.ico文件、一个resource.h文件和一个.rc文件,最后记得编译!如果以后想换一个图标,把原.ico文件删除,然后用记事本或Notepad++打开.rc文件,在里面修改IDI_ICON1的路径(即图标文件的路径)即可,最后记得编译!问题:编译后,exe文件图标还是没有改变,这原创 2020-05-25 11:36:02 · 559 阅读 · 0 评论 -
Ubuntu下Qt程序生成Core文件便于调试
需要在运行时生成core dump文件,以排查出错的代码行/首先在pro结尾里加入:QMAKE_CC += -gQMAKE_CXX += -gQMAKE_LINK += -g在终端输入 ulimit -c,若显示为 0,则不能生成coredump文件。然后输入 ulimit -c unlimited继续在终端运行程序。出错后,会在当前目录生成 core 文件。然后在终端执行 “gdb 你的程序名 core”。然后输入 bt 对该错误进行跟踪调试。(gdb) bt通过调用堆栈,可以看出原创 2020-10-19 16:56:19 · 768 阅读 · 0 评论 -
彻底解决Qt中文乱码以及汉字编码的问题(UTF-8/GBK)
看了一篇很好的博客,讲解很详细。点击查看–>转载 2020-10-23 16:57:09 · 275 阅读 · 0 评论