Qt Learn
文章平均质量分 58
在使用Qt开发中的对知识点和问题的总结归纳。
勇往直前996
内在清醒,行所当行,敢做就能赢。
展开
-
Qt应用重启
重启应用程序是一种常见的操作,在Qt中实现非常简单,需要用到QProcess类一个静态方法。转载 2022-09-15 14:09:43 · 2120 阅读 · 2 评论 -
线程局部存储
在多线程术语中,经常听到一个词就是“线程局部存储”,英文Thread-local storage,简称TLS。我们今天就来看看这到底是一个什么样的神秘东西。1 在讲解之前,我们先来看一个例子#include <QDebug>int invoke_count =0; // 用来记录调用common_function函数的次数void common_function (){ ++ invoke_count; //...}void print转载 2022-03-01 10:30:31 · 359 阅读 · 0 评论 -
Qt之QFuture
QFuture 类代表一个异步计算的结果。要启动一个计算,使用Qt之Concurrent框架中的 APIs 之一。QFuture 允许线程与一个或多个结果同步,这些结果将在稍后的时间点准备就绪,该结果可以是具有默认构造函数和拷贝构造函数的任何类型。如果一个结果在调用 result()、resultAt() 或 results() 函数时不可用,QFuture 将进行等待,直到结果可用为止,使用 isResultReadyAt() 函数可以检测结果是否已准备就绪。进度信息由 progressV..转载 2021-10-21 17:54:26 · 697 阅读 · 0 评论 -
Qt中使用gif动图加载大量数据
这篇文章的主要内容是:点击一个widget页面时,当加载的数据量过大时,会造成假死状态。此时使用gif动态加载图表示当前加载的状态。目前我使用的开发环境是:VS2017+QT5.14.2肯定有人觉得怎么用这么个怪异的开发环境,使用QT语言为啥不直接使用QtCreator呢?我只能说工作需要,哈哈。接下来我们主要讲解我需要实现的功能实现的功能是:点击父窗口的按钮,进入子窗口Dlg1中,并在子窗口Dlg1中加载数据,在加载数据的同时显示gif等待图片这个功能看着很简单,其实存在了以下几个难点转载 2021-10-21 17:47:38 · 782 阅读 · 0 评论 -
无法定位程序输入点_except1于动态链接库MSVCR120.dll
重新下了最新版本的visual C++2013运行库,再安装QT,结果没有问题了。这里提供一个下载链接,亲测可用:Microsoft Visual C++2013运行库原创 2021-09-19 13:35:46 · 1427 阅读 · 0 评论 -
QT如何在Release编译下生成pdb文件
方法一、更改配置文件目录:Qt5.13.2\5.13.2\msvc2017_64\mkspecs\common文件:msvc-desktop.confQMAKE_CFLAGS_RELEASE = -O2 -MD -ZiQMAKE_LFLAGS_RELEASE = /INCREMENTAL:NO /DEBUG关于 -Zi生成一个程序数据库(PDB),其中包含供调试器使用的类型信息和符号化调试信息。关于 -O2优化速度。关于 -MD多线程DLL。方法二、更转载 2020-11-11 18:16:29 · 1192 阅读 · 0 评论 -
QtSingleApplication应用单例执行
QtSingleApplication 默认使用Widget,对于Widget的应用,可以直接支持,对于使用QGuiApplication的Qml应用是不能直接支持的。所以,可能需要修改qtsingleapplication的源代码。1、使用QtSingleApplication 实现qt程序单例使用QtSingleApplication 代替原来的QApplication类,该单例类中有一...转载 2020-03-09 18:01:39 · 349 阅读 · 0 评论 -
对画框自适应和addStretch()用法
1、让对话框大小总是以最合适的大小显示。。。。 label = new QLabel(QObject::tr("初始文本")); label->setMaximumWidth(100); /*自适应大小,可有可无*/ label->adjustSize(); /*自动换行*/ label->setWordWrap(true...转载 2020-02-22 15:50:49 · 1743 阅读 · 0 评论 -
Qt 内置图标的介绍和使用
一、QT内置的ICON资源保存在QStyle类里。可以通过成员函数QStyle::standardIcon来获取。保存的icon有:enum QStyle::StandardPixmapThis enumdescribes the available standard pixmaps. A standard pixmap is a pixmap that can foll...转载 2020-02-21 15:54:20 · 3709 阅读 · 0 评论 -
Qt 窗口属性简介之Qt::WA_DeleteOnClose
一、简述今天介绍一个简单的窗口属性——Qt::WA_DeleteOnClose。在正常创建窗口后,我们一般会调用close()方法来关闭窗口,这里我们看一下Q助手中关于close()方法的介绍。bool QWidget::close()Closes this widget. Returns true if the widget was closed; otherwise retu...转载 2019-12-03 18:48:56 · 821 阅读 · 0 评论 -
Qt Creator Pro文件根据不同编译器自动选择对应的第三方库
开发环境:Ubuntu 16.04 x64 +Qt Creator 4.7.2 +Qt-4.8.7目标板:TI am335x开发板编译工具:arm-arago-linux-gnueabi-gcc开发中需要链接FFmpeg库,一方面想在PC机上直接运行调试,一方面要在板子上验证。如果每次都去修改Pro文件,会非常繁琐,如下图,每种平台的库都是由不同编译器编译出来的,不能混...转载 2019-10-25 10:39:57 · 2481 阅读 · 0 评论 -
Qt 如何处理密集型耗时的事情(频繁调用QApplication::processEvents)
有时候需要处理一些跟界面无关的但非常耗时的事情,这些事情跟界面在同一个线程中,由于时间太长,导致界面无法响应,处于“假死”状态。例如:在应用程序中保存文件到硬盘上,从开始保存直到文件保存完毕,程序不响应用户的任何操作,窗口也不会重新绘制,从而处于“无法响应”状态,这是一个非常糟糕的体验 。 在这种情况下,有一种方法是使用多线程,即在子线程中处理文件保存,主线程负责界面相关。 ...转载 2018-05-11 11:10:07 · 488 阅读 · 0 评论 -
QT pro文件解析
在QT中使用qmake自动生成pro文件,如果要自己定制工程选项,则需要自行修改pro文件。pro文件有以下关键字:TEMPLATE、TARGET、DESTDIR、DEPENDPATH、INCLUDEPATH、SOURCES、HEADERS、FORMS、LIBS、TRASHLATIONS、RESOURCES、CONFIG、UI_DIR、RCC_DIR、MOC_DIR、OBJECTS_DI...转载 2019-08-20 15:25:57 · 375 阅读 · 0 评论 -
Qt4.8升级Qt5.9版本问题总结
最好先在.pro文件中加上 greaterThan(QT_MAJOR_VERSION, 4): QT += widgets建议最好和源码对比看着升级,有些问题不看源码,报出来的问题会误导我们。1、106: error: 'class QString' has no member named 'toAscii' qDebug() << sql.toAscii().data(...原创 2019-08-17 16:45:57 · 5979 阅读 · 0 评论 -
浮点数据与4个单字节的转换
在串口、IIC、SPI等数据传送时基本上都是一次传送一个字节的数据,如果要传送浮点数据?通常是将浮点数乘以一个倍数,如10,100,1000,10000等,然后将其转换为整型数据再转化为单个字节进行传送。如果这个数据是要进行显示的话,那么这样做并没有什么不好。但是如果这个数是要传输给另端进行继续计算的话,那么就要考虑另一种方法了,就是直接将浮点数据转换为4个单字节,在另一端接受完数据后再转化为...转载 2019-08-27 23:05:57 · 1827 阅读 · 0 评论 -
release版本图标不能在windows工具栏正常显示的小问题
使用图片文件,QIcon("/new/prexf1")使用资源文件里的图片,QIcon(":/new/prexf1")写法有区别。我把setWindowIcon(QIcon(":/Logo.ico"));写成了 setWindowIcon(QIcon("Logo.ico"));所以出现这个问题。...原创 2019-09-02 10:12:39 · 319 阅读 · 0 评论 -
ARM-LINUX嵌入式设备上中文输入法的实现(虚拟键盘的简单输入法)
这里要说的是,这里的实现并不是我自己写的,我只是借用了别人的,实际就是syszuxpinyin具体情况,可以自行百度。这里我先分享下源码链接: https://pan.baidu.com/s/1jHZ13D0 密码: igjw。这里简单说一下调用方法,我这里没有用dll的方式,而是直接用源码的方式编译到工程中。首先将源码包含到程序中,在需要调用的类中包含input.h文件。同时需要实...转载 2019-09-03 17:13:31 · 3728 阅读 · 0 评论 -
Qt QClipboard 粘贴复制功能学习
粘贴板,这个词相信大家都比较熟悉,比如使用offiece的时候就会有粘贴板,文本编辑的时候Ctrl+C和Ctrl+V的使用,其实也是使用到了粘贴板,在往细了说,从一个文本文件中复制一段内容到另一文本文件,这也使用到了粘贴板,而这也是粘贴板的一个功能,这其实实现了进程间的通信,顺道说明一下:粘贴板是由操作系统维护的。//获取系统剪贴板指针QClipboard *clipboard =...转载 2019-07-31 14:06:35 · 2857 阅读 · 0 评论 -
Qt模型/视图原理(1):基本理论
若对C++语法不熟悉,建议参阅《C++语法详解》一书,电子工业出版社出版,该书语法示例短小精悍,对查阅C++知识点相当方便,并对语法原理进行了透彻、深入详细的讲解,可确保读者彻底弄懂C++的原理,彻底解惑C++,使其知其然更知其所以然。此书是一本全面了解C++不可多得的案头必备图书。数据通常由若干个数据项(item)组成。MVC把需要处理的数据及其显示分离开来。MVC把图形界面分为三...转载 2019-07-12 00:30:14 · 257 阅读 · 0 评论 -
Qt相关下载地址
上Qt官网http://www.qt.io/download/想下载Qt,速度很慢,在这里记录下在Qt官网看到的镜像下载地址:1. 所有Qt版本下载地址:http://download.qt.io/archive/qt/2. 所有Qt Creator下载地址:http://download.qt.io/archive/qtcreator/3. 所有Qt VS开发插件下载地址:...转载 2019-07-11 23:32:16 · 167 阅读 · 0 评论 -
Qt Creator 结合Vld检测程序内存泄漏情况
Visual Leak Detector(VLD)是一款用于Visual C++的免费的内存泄露检测工具。一、下载、安装 1.下载 下载1:http://vld.codeplex.com/releases/view/619330 下载2:vld-2.5.1版(直接下载2.5.1版)2.安装:一直next即可。需要注意的是这几个框都要选上,这样就可以自动配置环境...原创 2018-11-17 16:20:48 · 2946 阅读 · 1 评论 -
Qt信号与槽深入理解:信号与槽的连接方式
信号槽机制是Qt的特色功能之一,类似于windows中的消息机制,在不同的类对象间传递消息时我们经常使用信号槽机制,然而很多时候都没有去关注connect()函数到底有几种重载的形式,其中的各项参数都是什么。如果总是浮于表面,仅仅是满足于功能实现,而不去深究有哪些可能影响程序行为的参数,或者是作为一种GUI开发框架,她实现这种机制的原理是什么的话,一则是可能得不到提高,二则是在面试的时候问及这些问...转载 2018-06-30 11:21:21 · 3516 阅读 · 0 评论 -
Qt 清空QHash表中new出来的对象
释放分两种情况(QHash<Key, T>): 1.T的类型为非指针,这时候直接调用clear()方法就可以释放了。 2.T的类型为指针的情况,这时候直接调用clear()方法将不能释放,需要把每个对象delete。该部分摘自:https://blog.csdn.net/fanbingyu85/article/details/9704905方式1:一个个删除节点:QHash&l...原创 2018-05-11 19:08:27 · 2929 阅读 · 0 评论 -
C++ 中Struct 和Class的异同
转载来源:http://blog.sina.com.cn/s/blog_48f587a80100k630.htmlC++中的struct对C中的struct进行了扩充,它已经不再只是一个包含不同数据类型的数据结构了,它已经获取了太多的功能。struct能包含成员函数吗? 能!struct能继承吗? 能!!struct能实现多态吗? 能!!! 既然这些它都能实现,那它和class还能有什么区别?最本...转载 2018-05-04 10:05:48 · 299 阅读 · 0 评论 -
Qt QWidget获取子控件的方法小结
父类QWidget或取其子类控件并赋值:两个方法可用:1.根据名称返回控件对象:QLabel* label = ui->Stepwidget->findChild<QLabel*>("label_step1"); //根据子控件的名称查找子控件 label->setText("jianjian");2.直接返回所有子控件的列表QList<QLabel*&g...原创 2018-05-09 11:46:07 · 28503 阅读 · 9 评论 -
QT: 怎么运行release后的.exe文件
对于一些初学Qt的人来说,在软件里面可以运行,但是想运行release之后的可执行程序如.exe文件,就需要把其运行所依赖的包放到一起。 方法一:把编译成功的.exe文件放到你QT的安装目录下,例如:C:\Qt\2010.05\qt\bin,这样点击可以运行(软件运行依赖环境的); 方法二:把软件需要的基本动态链接库文件(Qt C转载 2017-10-26 12:50:10 · 2728 阅读 · 0 评论 -
error: C2039: “setMainWidget 不是QApplication的成员问题
QT help文档上给的第一程序“Hello world!”:#include qapplication.h>#include qpushbutton.h>int main( int argc, char **argv ){ QApplication a( argc, argv ); QPushButton hello( "Hello world!", 0 );原创 2017-08-30 17:49:25 · 2329 阅读 · 0 评论 -
QString、const char *与QByteArray互转、字符串转十六进制
4、const char *转QByteArray。原创 2019-01-11 09:41:22 · 8871 阅读 · 3 评论 -
Qt跨线程调用错误解析及解决办法
错误提示:Error: Cannot create children for a parent that is in a different thread.错误案例分析新建SerialLink子线程,继承QThread,并重写它的run(),调用 start()函数时自动调用重载的run()函数。在主线程中创建SerialLink类的对象。串口_port在SerialLink的头文件中...转载 2019-01-08 16:53:07 · 1512 阅读 · 0 评论 -
在Qt使用moveToThread()
笔记:使用中:子线程要向主线程发送 QMap<QString, QString> 类型的变量子线程中:QMap<QString, QString> testMap; emit testSignal(testMap);主线程中没有收到该信号,并有如下信息:QObject::connect: Cannot queue arguments of type 'QMap&...转载 2019-01-08 17:44:15 · 2598 阅读 · 0 评论 -
Qt 加载翻译文件基本方法
我用的是Qt 4.8.3.Qt的翻译分为三步:1.运行lupdate或者通过如下图完成该操作(选择Qt语言家然后完成更新翻译),从应用程序中提取所有经tr()标识过的字符串,生成一个后缀为*.ts的文件。2.使用Qt Linguist翻译这个*.ts。然后用其生成*.qm。3.在应用程序中用QTranslator这个类加载*.q...转载 2019-04-29 18:23:23 · 8085 阅读 · 0 评论 -
QT加载DLL包括加载DLL中的类及其成员函数
看到的说的比较好的博文记录一下:QT动态加载DLLQt 加载动态库:显示调用和隐式调用C++之DLL学习原创 2019-04-19 12:52:54 · 2129 阅读 · 0 评论 -
the CDB process terminated
这个问题遇到过几次,但是每次都总忘记怎么解决,今天记录一下。我遇到这个问题的解决方法,没有网上遇到的那么复杂,所以再遇到这个问题先做这一步,然后再参考其他解决方法吧:右击“Qt Creator”以管理员身份运行或者修改其属性:如果以上方法还是不能解决问题,那就在参考其他方法:1、Debugger没有设置好。这种情况请确认你的调试器和编译器都是x86或x64.2、生成可...原创 2019-04-23 09:03:08 · 1750 阅读 · 2 评论 -
Qt加载qss样式文件
一、静态加载1、建立文本文件,写入样式表内容,更改文件后缀名为qss;2、在工程中新建资源文件*.qrc,将qss文件加入资源文件qrc中,此处注意prefix最好为"/",否则在调用qss文件时会找不到文件;3、通过传入路径\文件名的方式创建一个QFile对象,以readonly的方式打开,然后readAll,最后qApp->setStyleSheet就可以使qss生效。QString...转载 2019-03-12 14:41:57 · 3173 阅读 · 0 评论 -
Qt4、Qt5软件图标设置
目录设置应用程序图标目录第一步:生成图标第二步:修改项目文件注意第一步:生成图标先生成一个.ico文件,直接改图片后缀行不通,可以自己找个.ico文件 此链接可在线生成icohttp://www.faviconico.org/ 然后将ico图片文件复制到工程文件夹目录中 第二步:修改项目文件在项目文件的最后面添加一行代码:RC_ICONS = XXX...转载 2019-03-12 14:30:30 · 976 阅读 · 0 评论 -
QTableWidget相关设置
在公司公示Qt开发一段时间,表格用到不少,所以,今天在这做个总结,防止以后忘记。 下面为个人模拟Windows资源管理器的一个表单。(写的比較粗糙,谅解一下) 一、设置表单样式 table_widget->setColumnCount(4); //设置列数 table_widget->horizontalHeader()->setDefaultS...转载 2019-03-15 16:34:10 · 693 阅读 · 0 评论 -
Qt MainWindow中创建菜单
新建项目得到的ui中:pMenuBar = ui->menuBar; // 菜单栏然后相应的创建菜单,在创建菜单项,代码如下:void MainWindow::createMenus(){ //新建一个菜单A QMenu* pNewMenu = new QMenu("&File"); // q则为Alt方式的快捷键 //新建一个...原创 2019-03-15 13:15:42 · 1786 阅读 · 0 评论 -
将Qt QCheckBox 默认选中样式改为对号选中
1、局部样式设置//说明: //改变大小 //QCheckBox::indicator {width: 13px;height: 13px;} //未选中的样式 //QCheckBox::indicator:unchecked {image: url(:/res/uncheckbox.png);} //选中时的样式 //QCheckBox:...原创 2019-03-05 11:34:51 · 7592 阅读 · 1 评论 -
Qt Creater error 转换到 COFF 期间失败
版本信息Qt版本: Qt 5.2.1 MSVC2010VS版本: visual studio 2010错误信息:-1: error: LNK1123: 转换到 COFF 期间失败: 文件无效或损坏LINK : fatal error LNK1123: 转换到 COFF 期间失败: 文件无效或损坏解决方案我的解决方案:查找是否有两个cvtres.exe一个是C转载 2017-09-04 11:16:06 · 266 阅读 · 0 评论