Qt
SunnyFish-ty
学习学习再学习!
展开
-
mac上 qt与mysql的连接问题
经过两天的折磨和挣扎,将Mac上QT与mysql数据库链接问题的解决做一个梳理,以防忘记,并供他人借鉴;原创 2023-04-22 16:48:21 · 980 阅读 · 1 评论 -
QT QMessageBox去除按键
QMessageBox 生成简单提示如下: QMessageBox msgBox; msgBox.setText("The document has been modified."); msgBox.exec(); 有小伙伴会添加一句: msgBox.button(QM...原创 2018-08-21 15:42:04 · 2830 阅读 · 0 评论 -
Qt实现子线程中任务原地等待的方式
Qt实现子线程中,任务原地等待的方式,该代码在线程锁之外while(e_isPressPause) { QThread::msleep(100); }原创 2018-08-17 10:33:08 · 3116 阅读 · 0 评论 -
Qt优雅地结束线程
如果一个线程运行完成,就会结束。可很多情况并非这么简单,由于某种特殊原因,当线程还未执行完时,我们就想中止它。不恰当的中止往往会引起一些未知错误。比如:当关闭主界面的时候,很有可能次线程正在运行,这时,就会出现如下提示:QThread: Destroyed while thread is still running这是因为次线程还在运行,就结束了UI主线程,导致事件循环结束。这个问题在使用线...转载 2018-08-16 15:33:55 · 2580 阅读 · 0 评论 -
QThread的用法
概述 QThread类提供了一个与平台无关的管理线程的方法。一个QThread对象管理一个线程。QThread的执行从run()函数的执行开始,在Qt自带的QThread类中,run()函数通过调用exec()函数来启动事件循环机制,并且在线程内部处理Qt的事件。在Qt中建立线程的主要目的就是为了用线程来处理那些耗时的后台操作,从而让主界面能及时响应用户的请求操作。QThread的...转载 2018-08-16 15:31:46 · 3931 阅读 · 1 评论 -
QTableWidget控件使用总结
http://blog.csdn.net/mingxia_sui/article/details/7681863 1.QTableWidget不能在mainwindow中随主窗口的大小变化? 解决:在表格外部添加布局。 代码:tableWidget = new QTableWidget; tableWidget ->setObjectName(QStri...转载 2018-08-13 14:47:18 · 1331 阅读 · 0 评论 -
Qt修改背景颜色
ui->tabWidget->setStyleSheet("background-color: gray");如果是对界面中的所有tabWidget设置颜色,则用qApp->setStyleSheet("QTabWidget {background-color: gray}");其他控件是一样的更多细节在帮助中搜索 setStyleSheet...原创 2018-08-02 16:12:03 · 6019 阅读 · 0 评论 -
QTableWidget中的clicked和DoubleClicked事件
本来昨晚想写一个双击table中的某个Item,便活的这个item所在的记录,然后产生事件的一个小程序。但是却发现了一个让我很无语的问题。我用文档里提供的Itemclicked()和ItemdoubleClicked()信号无论如何都连不上。但发现其他的CELL信号和 itemSelectionChanged ()信号是可以的。郁闷的我百思不得其解。跑了QT论坛上问,还没人给出原因。索性今上午...转载 2018-08-14 16:19:07 · 24938 阅读 · 3 评论 -
QT中的QImage、QPixmap和opencv 中的mat转化
原文地址:https://blog.csdn.net/qq_17550379/article/details/78683153我们使用QT和opencv的过程中经常会碰到这样的问题:Mat怎么转化位QImage?Mat怎么转化为QPixmap?今天我来告诉大家一个比较好的解决方案(以下代码参考了别人的,增加了一些修改)#include <QDebug>#include &l...转载 2018-08-14 14:50:03 · 1327 阅读 · 0 评论 -
Qt设置窗口大小的方式
1、 一种方法是设置它的最大窗口值和最小窗口值,并且使最大值和最小值相等。 简单的示例: setMinimumSize(370, 150); setMaximumSize(370, 150); 此时窗口大小便被固定为(370,150)。 2、一种方法是使用setFixedSize(),这样一句话就可以解决问题。 简单的示例: setFixedSize(365,240); 窗...转载 2018-08-01 17:45:48 · 20956 阅读 · 1 评论 -
QString中文转wcahr_t*,char*
在Qt中QString支持中文的输入方式,以及如何将QString中文转为wchar_t* 并进一步转为char* QString qstr=u8"您好"; qDebug()<<qstr; std::wstring str=qstr.toStdWString(); std::wcout.imbue(std::locale("chs...原创 2018-08-10 11:29:48 · 603 阅读 · 0 评论 -
Qt实现复制文本
在.cpp实现文件中代码如下: mFilePath = new QLineEdit(this); mFileName = QFileDialog::getOpenFileName(this,tr("Open File")); mFilePath->setText(mFileName); HelperPrintf("current file name is: ...转载 2018-09-05 09:41:50 · 3870 阅读 · 0 评论 -
QTableWidget无法响应鼠标点击(QMousePressEvent)的问题
1 前言使用QTableWidget显示内容时想要通过触发itemSelectionChanged()信号时执行某些操作,但是在表格只有一行时发现此信号无法触发,即使点击空白区域。 因此想要捕获父窗口的QMousePressEvent() 来触发自定义信号,发现在表格内的鼠标点击事件无法被捕获。2 解决方案使用Qt的事件过滤器,捕获QTableWidget的视窗(viewPort)所发生...转载 2018-10-12 14:46:01 · 4159 阅读 · 1 评论 -
关于Qt隐藏任务栏已及导致QDialog关闭整个程序问题
1.首先如果要隐藏任务栏,则需要设置setWindowFlags(Qt::Tool | Qt::WindowStaysOnTopHint | Qt::X11BypassWindowManagerHint);但是用这种 Tool型的Widget,直接使用Close() 方法,是关不掉的(Tool作为工具窗口,一般的关闭事件,系统认为只是隐藏而已,所以不是真正的关闭),如要因此退出应用程序的话,需要...转载 2019-04-25 12:49:09 · 1394 阅读 · 0 评论 -
Application failed to start because it could not find or load the QT platform plugin “windows”
用VS 2015进行QT程序开发时,在vs界面中调试编译程序时没有问题,但是进入到生成的exe文件夹下运行exe文件是却总是跳出一个提示框:Application failed to start because it could not find or load the QT platform plugin “windows”;这几个字困扰我许多天,尝试过网上许多方法,都不能成功。当然,...原创 2019-03-15 14:49:34 · 447 阅读 · 0 评论 -
Qt可执行程序在另一台机器上坑爹的0xc000007b
除了这个贴吧中提到的几种可能外,这里再补充一个:如果是在一台机器A上用Qt写的可执行程序,放在另一台装有Qt的电脑B上,执行时,出现0x000007b错误,还有一种可能就是,A,B两台电脑上安装的Qt版本有差异,如果你是在A电脑上,利用windeployqt hellomw.exe命令打包的,那么你会发现打包后,文件夹下包含A电脑上Qt自带的Qtxxx.dll库,在将整个文件夹移到B上,将...原创 2019-03-07 10:15:16 · 1451 阅读 · 0 评论 -
Qt调用外部程序,启动并从中获取信息——QProcess
今天在开发的时候遇到了程序间调用的问题,最开始的设想是使用c++来完成,后来想,既然使用Qt进行界面开发的,那能否用Qt来完成相关工作呢,于是展开了这一次旅行。闲话少说,开始正文,先看一下大致的流程:首先,我们通过Qt的那部分模块来实现此功能,牛曰:在`QProcess`模块当中其次,我们应该通过怎样一个流程来完成呢,牛历后曰:两步走,首先要启动外部程序,启动之后外部程序会产生相应的动作...转载 2019-03-06 15:15:00 · 2280 阅读 · 0 评论 -
Qt中读写json文件
以json原文如下为例:{//一级大括号 "first fruit": {//二级大括号 "describe":"an apple", "icon":"appleIcon", "name":"apple" }, "second fruit": {原创 2018-12-26 23:06:18 · 6883 阅读 · 1 评论 -
QT 获取网页上的信息(JSON格式)
在.pro文件中添加QT += network #include <QNetworkAccessManager>#include <QNetworkRequest>#include <QNetworkReply>#include <QtCore>#include <iostream>using namespac...转载 2018-12-26 17:27:44 · 1264 阅读 · 0 评论 -
Qt子窗体关闭时,不执行析构函数问题的解决
子窗体的构造函数中初始化了父窗体的parent,当关闭子窗体时不会调用析构函数,只有关闭父窗体时,才会调用子窗体的析构函数,解决办法如下setAttribute(Qt::WA_DeleteOnClose);写在子窗体的构造函数就可以了~...原创 2018-12-05 16:45:16 · 4826 阅读 · 0 评论 -
在QTableWidget中添加右键菜单
- *.h#include <QMenu> QMenu *popMenu;QAction *actSelect;QAction *actUnselect;- *.cpppopMenu = new QMenu(ui->tw_DL_ConfTable);actSelect = new QAction("选择", this);actUnselect = new QA...原创 2018-11-15 11:18:48 · 2226 阅读 · 0 评论 -
给Qt生成的exe加图标
QT窗口图标设置1、图片或图标最好放在同一个文件夹中,好管理2、新建一个qrc文件,文件名自己宣称命名,这里命名为ImageOrIco,代码具体写法见下面<RCC> <qresource> <file>ImageOrIco/butterfly.png</file> <file>Im...转载 2018-10-29 09:34:27 · 10534 阅读 · 2 评论 -
Qt事件总结(鼠标、键盘)
Qt 程序需要在main()函数创建一个QCoreApplication对象,然后调用它的exec()函数。这个函数就是开始 Qt 的事件循环。在执行exec()函数之后,程序将进入事件循环来监听应用程序的事件。当事件发生时,Qt 将创建一个事件对象。Qt 中所有事件类都继承于QEvent。在事件对象创建完毕后,Qt 将这个事件对象传递给QObject的event()函数。event()函...原创 2018-10-15 09:30:51 · 865 阅读 · 0 评论 -
Qt去读中文文档乱码解决方法
代码如下 QString filename = QFileDialog::getOpenFileName(NULL); if (filename.isEmpty()) { return; } QFile file(filename); if (file.open(QIODe...原创 2018-08-09 17:34:50 · 415 阅读 · 0 评论 -
QStringList 的常规使用
参考博客:https://blog.csdn.net/u013360881/article/details/52170487QStringList 初始化 QStringList qstrList; qstrList<<"Android" << "Qt Creator" << "Java" << "C++";原创 2018-07-13 10:52:57 · 85621 阅读 · 3 评论 -
Qt创建文件和文件夹的副本(QFile::copy)
[cpp] view plain copy//拷贝文件: bool MyTest007::copyFileToPath(QString sourceDir ,QString toDir, bool coverFileIfExist) { toDir.replace("\\","/"); if (sourceDir == toDir){ return tru...转载 2018-05-28 16:37:55 · 2305 阅读 · 0 评论 -
QT对配置文件.cfg , .ini文件的建立,读取,写入操作
一 背景1 ini文件介绍.ini 文件是Initialization File的缩写,即初始化文件。除了windows现在很多其他操作系统下面的应用软件也有.ini文件,用来配置应用软件以实现不同用户的要求。一般不用直接编辑这些.ini文件,应用程序的图形界面即可操作以实现相同的功能。它可以用来存放软件信息,注册表信息等。 2 ini文件格式INI文件由节、键、值组成。 节[section] 参...转载 2018-05-28 16:17:01 · 12168 阅读 · 0 评论 -
Qt + VS【无法打开xxx文件】
在工程中右键点击属性-配置属性-VC++目录-包含目录-选择自己安装的qt路径下的头文件包含进去即可,烦人的下杠红线也随之消失。转载 2018-03-22 09:52:01 · 1880 阅读 · 0 评论 -
Qt中QString与char*转换
在进行编程时,我们经常需要用到字符串这种类型,毫无疑问,Qt 库中也对字符串类型进行了封装,QString 类提供了你能想到的所有字符串操作方法,给开发者带来了极大方便。 但是我们在编写程序时,不可避免地会在 Qt 框架上使用第三方的开源库,由于库的类型基本上都是标准的类型,即使用 char * 来表示字符串类型。那么问题来了,QString 和 char * 之间如何进行转换呢? 下面分...原创 2018-03-01 10:24:39 · 1706 阅读 · 0 评论 -
不能将“this”指针从“const XXX”转为“XXX &”
错误说明解决方法 出现上述错误的原因是在const成员函数中调用了非const成员函数,因此只要将所调用的函数都改成const函数转载 2018-01-19 11:41:54 · 5598 阅读 · 0 评论 -
让QVariant认识 自定义结构体
如何在Qt中使用自定义数据类型Q_DECLARE_METATYPE, Qt自定义类型这里我们使用下面这个struct来做说明(这里不管是struct还是class都一样):struct Player{ int number;QString firstName; QString lastName;};QVariant 为了能在QVariant中使用自定义数据类型做,需要使用Q_DECLA转载 2018-01-18 17:50:14 · 1692 阅读 · 0 评论 -
“无法解析的外部符号”产生的几种原因
之前写代码时一直有遇到过这种问题:无法解析的外部符号"XXX::XXXX",该符号在函数"XXX::XXXX" 中被引用......其大部分都是由于1.只声明了函数但并没有实现它。这种一般都是大意忘记了,第一次编译就会发现。另外声明了静态变量,没有初始化它也会导致这样的情况发生。2.声明了函数也定义了函数但其函数参数对不上。比原创 2018-01-17 13:55:31 · 8525 阅读 · 0 评论 -
信号槽函数有重载的问题
在QT中,我们的信号函数与槽函数是需要参数匹配的,只有参数匹配了,moc才能将这两个函数联系起来,否则编译器将无法分辨该调用哪个函数。那么如果出现了,一个信号函数拥有两种不同的参数,我们的槽函数需要如何申明呢?在QT4中,我们的连接使用的是两个不同定义的宏,这样我们可以显式的给出我们需要的参数类型,但是在QT5中,我们一般不使用宏定义,我们对一个连接的声明如下:QObject::conne原创 2018-01-22 19:57:12 · 1940 阅读 · 0 评论 -
Qt中对text在程序中设置字体大小的方法
1、设置字体粗细setFontWeight(int weight)enum QFont::Weight可取以下各值: 2、设置字体斜体setFontItalic(bool italic)true表示斜体,false为非斜体。 3、设置下划线setFontUnderline(bool underline)true表示有下划线,false无。 ...原创 2018-01-11 14:03:29 · 29036 阅读 · 2 评论 -
Qt中QString与int,char等互转
简述:QString类提供了丰富的转换函数,可以将一个字符串转换为数值类型或者其他的字符编码集。QString::toInt()函数将字符串转换为整型数值,类似的函数还有toDouble()、toFloat()、toLong()、toLongLong();1、 int, float , double类型 转换为QString有两种方法:A . 使用arg long a = 36; ...转载 2018-05-29 14:53:17 · 1112 阅读 · 0 评论 -
Qt按行读写文本文件
Qt文本操作(按行读写)flyfish环境Qt 5.10.0需要增加头文件#include <QDebug>#include <QFile>void ReadLine(){ QFile file("要读的文件路径"); if (file.open(QIODevice::ReadOnly | QIODevice::Text)) { ...转载 2018-05-29 14:54:06 · 12351 阅读 · 0 评论 -
Qt中QString与int,char等互转
简述:QString类提供了丰富的转换函数,可以将一个字符串转换为数值类型或者其他的字符编码集。QString::toInt()函数将字符串转换为整型数值,类似的函数还有toDouble()、toFloat()、toLong()、toLongLong();1、 int, float , double类型 转换为QString有两种方法:A . 使用arg long a = 36; ...转载 2018-07-06 15:47:08 · 1064 阅读 · 0 评论 -
Qt程序打包发布方法
Qt 官方开发环境使用的动态链接库方式,在发布生成的exe程序时,需要复制一大堆 dll,如果自己去复制dll,很可能丢三落四,导致exe在别的电脑里无法正常运行。因此 Qt 官方开发环境里自带了一个工具:windeployqt.exe。以官方 Qt 5.4.0+MinGW 开发环境为例,windeployqt工具在 %QTDIR%\Qt5.4.0\5.4\mingw491_32\bin 目录下,...转载 2018-06-01 17:26:04 · 1345 阅读 · 0 评论 -
qt中获取文件路径和文件名、后缀名
QString file_full, file_name, file_path,file_suffix ;QFileInfo fileinfo;file_full = QFileDialog::getOpenFileName(this,(这里放打开时想在的路径));fileinfo = QFileInfo(file_full);//文件名file_name = fileinfo.file...原创 2018-05-31 10:17:36 · 3326 阅读 · 0 评论 -
Qt::ApplicationModal不起作用的原因
设置QWidget的Qt::WindowModality属性为Qt::WindowModal和Qt::ApplicationModal,发现窗体仍然不会模态,最后问题解决掉了,是因为我的QWidget有Parent,如果构造时设置Parent为NULL的话,就可以了。代码如下:ver_frame = new versionFrame();ver_frame->setWindowFlags(...原创 2018-05-31 09:00:40 · 5923 阅读 · 1 评论