
QT
立冲君也
这个作者很懒,什么都没留下…
展开
-
QString转换char*
这样就完成了QString向char*的转化。经测试程序运行时不会出现bug。注意第3行,一定要加上,单独写,不可以str.toLatin1().data()这样一步完成,否则可能会出错。因为char*最后都有一个’\0’作为结束符,而采用QStringtoLatin1()时会在字符串后面加上’\0’。将QString转char*,需要用到QByteArray类,QByteArray类的说明详见Qt帮助文档。.........原创 2022-07-20 10:58:04 · 718 阅读 · 1 评论 -
Qt自动判断文本文件的编码格式(QT自定义文件编辑器)
迅哥说:每个程序员都会遇到乱码问题,只是早晚的事情。(鲁迅:我没说过)问题形容:比如在qt自定义一个文件编辑器,类似于window的记事本,会发现打开不同编码格式的文本文件会乱码。。解决方案:window系统的 txt 文件编码一般有 ANSI 或者 UTF8 格式,其中 ANSI 也就是qt里的 GBK格式。因此,只要我们在打开文本文件时先判断该文件的编码格式,然后qt设置好该编码格式后读取文件即可。1、第一次打开文件2、判断其编码格式3、关闭文件4、再次打开文件5、根据第二步的返回值设置原创 2022-04-13 14:41:37 · 6055 阅读 · 1 评论 -
QT获取发送信号的对象名(qobject_cast、sender、static_cast)
需求分析当某一个Object emit一个signal的时候,它就是一个sender,系统会记录下当前是谁emit出这个signal的,所以在对应的slot里就可以通过 sender()得到当前是哪个对象调用了你的slot,对应的是QObject->d->sender.使用方法多个按键对应一个按键处理槽函数,这时候就需要判断是哪一个按键发出信号触发了槽函数,这时候就可以通过sender的不同来进行不同的处理,以下就是槽函数里获取其发出信号对象的方法QPushButton*editor =原创 2022-03-28 11:14:32 · 4261 阅读 · 1 评论 -
QT延迟函数
头文件#include<QTimer>//延迟函数void Widget::Delay_MSec(unsigned int msec){ QEventLoop loop;//定义一个新的事件循环 QTimer::singleShot(msec, &loop, SLOT(quit()));//创建单次定时器,槽函数为事件循环的退出函数 loop.exec();//事件循环开始执行,程序会卡在这里,直到定时时间到,本循环被退出}...原创 2022-03-26 16:54:14 · 3878 阅读 · 1 评论 -
symbol _ZdlPvm version Qt_5 not defined in file libQt5Core.so.5 with link time reference
说明:这个问题主要是Ubuntu自带的环境和用户自己安装的环境有冲突不兼容所造成的,这个与Ubuntu的运行机制有关。因为Qt启动程序默认在 /usr/lib/ 目录下查找libQt5Core.so.5动态链接库,而我自己安装的libQt5Core.so.5动态库在/home/XXX(用户名)/Qt5.9.5/5.9.5/gcc_64/lib下,二者是不兼容的(尽管二者名字看起来一样)解决方案思路:既然qt会去/usr/lib/ 目录下查找,那么就先把/usr/lib/libQt5Core.so.5先原创 2022-03-22 16:47:42 · 14554 阅读 · 3 评论 -
Linux下的QT的QProcess执行shell脚本文件
一、函数接口QProcess类提供了三个函数1、QProcess::execute() 以堵塞方式的执行shell命令,当命令执行完成后,调用进程才会继续执行。命令输出的任何数据都将转发给调用进程输出(因此无法捕获)。2、QProcess::start() 以异步方式的执行shell命令,命令输出的数据存储于缓冲区,可以通过readAllStandardOutput()捕获3、QProcess::startDetached() 以分离的方式执行shell命令,调用进程退出,则分离的进程将继续运行,而原创 2022-03-16 10:11:58 · 7232 阅读 · 0 评论 -
No such file or directory #include <QX11Info>
我的问题描述:window环境是qt4.8.5,Linux环境是5.9.5,我直接把window 的qt源码复制到Linux下运行,会有点不对劲,程序起不来,这时需要手动更改下Linux的环境配置。报错: No such file or directory #include 这是因为编译器不认识 QX11Info,这时需要手动加上该模块解决方案:QT += gui x11extras就是上面的x11extras手动加上即可。来源:Compiler does not see QX11Info原创 2022-02-26 11:07:13 · 1340 阅读 · 0 评论 -
QT线程之 moveToThread() 只能用信号槽方式触发
qt的线程使用方法有把某个对象的函数放置线程里执行,方法为moveToThread()具体操作步骤为:1、创建一个新的类,让这个类从 QObject 派生class MyWork:public QObject{ .......}2、在这个类中添加一个公共的成员函数,函数体就是我们要子线程中执行的业务逻辑class MyWork:public QObject{public: ....... // 函数名自己指定, 叫什么都可以, 参数可以根据实际需求添加 v原创 2022-02-19 23:27:19 · 2809 阅读 · 0 评论 -
Qt数据库的相关模块常见用法
转载来源:Qt sqliteQSqlQuery类用来执行SQL语句QSqlRecord类封装数据库所有记录QSqlRelationalTableModelQSqlQueryModelQSqlTableModel第一:QSqlDatabase类QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE"); 采用QSQLITE数据库db.setHostName("localhost"); //设置数据库主机名 db.setDatabaseNam转载 2022-02-16 17:28:43 · 377 阅读 · 0 评论 -
关于QTableWidget的信号cellChanged使用方法(这个信号好坑)
1.网上找了很久,关于cellChanged这个信号的使用方法很少很少,QT文档也没找到,有的也是不具体,就是简单介绍一下,踩了很多坑,现在通过自己探索之后,才发现这个信号很坑。 2.首先介绍一下我想要实现的功能:实现用户可以手动在最后一行可编辑空白行添加行,并且编辑完成后总是添加最...原创 2022-01-12 08:58:49 · 2125 阅读 · 0 评论 -
Qt QTableWidget 的 item 自适应宽度以及最后一列铺满最后
针对的是QtableWidget的函数①自适应宽度ui->tableWidget->resizeColumnToContents(0);ui->tableWidget->resizeColumnToContents(1);②最后一列铺满最后ui->tableWidget->horizontalHeader()->setStretchLastSection(true);...原创 2021-06-22 17:14:02 · 6605 阅读 · 0 评论 -
qt 中文字符乱码问题
这次是在main函数里整,屡试屡爽在main函数里①添加头文件#include <QTextCodec>②在main函数里定义添加如下代码 QTextCodec::setCodecForTr(QTextCodec::codecForName("GBK")); QTextCodec::setCodecForLocale(QTextCodec::codecForName("GBK")); QTextCodec::setCodecForCStrings(QTextCo原创 2021-06-17 15:28:34 · 233 阅读 · 0 评论 -
qt5.9.9中文字符乱码
本人的开发环境的IDE是QT Creator版本是5.9.9编译器是MSVC2015出现的问题是中文字符乱码,就是问好那种搜索了下,原因是因为MSVC编译器导致的解决方案:在要用到中文字符的头文件和源文件开头加上MSVC的一个宏:#if _MSC_VER >= 1600#pragma execution_character_set("utf-8")#endif例如解决方案出处:http://www.voidcn.com/article/p-wqwljgjy-bqp.ht原创 2021-04-17 22:47:39 · 418 阅读 · 0 评论 -
QT5的文字显示乱码问题
QT可以设置文字属性,例如设置窗口名称,但有时会显示乱码,这时只需要在头文件加上一句代码#pragma execution_character_set(“utf-8”)再qmake一下,编译一下,就可以正常显示!原创 2021-03-23 11:32:56 · 164 阅读 · 0 评论 -
QtCreator 编译时提示 warning C4819 的解决办法
用 QtCreator + Visual C++ 编译器 编译程序时经常会出现类似的警告:warning: C4819: 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为 Unicode 格式以防止数据丢失其实解决办法也很简单,将我们的代码保存为 utf-8 带 BOM 格式的文件就可以了。QtCreator 保存文件默认是 utf-8 格式的,但是不带 BOM。我们可以修改一下设置,让它每次保存是都保留 BOM。设置方法如下图:...原创 2021-03-23 11:29:44 · 461 阅读 · 0 评论 -
vs2015+ qt5.9刚新建工程时基类下画波浪线
vs2015+ qt5.9刚新建工程时基类下画波浪线是因为编译器没有添加到MSVC2015的编译器,需手动添加include地址按了应用确定之后马上不红了,库函数马上引用到了原创 2021-02-23 09:10:55 · 227 阅读 · 0 评论 -
VS2015+QT调试
用VS的小伙伴都知道VS的调试功能非常的方便,比原生的QT creator还要方便。下面介绍如何打开VS的控制台,也就是黑窗口看下效果原创 2021-02-22 10:43:03 · 472 阅读 · 0 评论 -
QT之简单登录窗口
最近几天上youtube学QT,跟的是一位印度阿三哥,这位阿三哥值得推荐(名为ProgrammingKnowledge ,好多技术语言都有介绍的挺好的~)贴上QT学习的链接https://www.youtube.com/watch?v=SyzxerD2Yps&list=PLS1QulWo1RIZiBcTr5urECberTITj7gjA&index=12&t=12s...原创 2020-03-13 12:48:41 · 2754 阅读 · 1 评论 -
QT之自定义信号与槽函数
信号与槽是QT的一大创新,通过自定义信号与槽可以实现自己想实现的功能。标准的信号与槽写法如下:connect(&button,&QPushButton::clicked,this,&QWidget::close);/** 对上面的connect信号与槽的说明* &button :信号发出者,指针类型* &QPushButton::clicked ...原创 2020-03-02 09:39:56 · 8258 阅读 · 0 评论 -
关于Qt Creator载入项目卡在reading project
前沿: 经常你打开别人发给你的QT项目,你打开.pro文件时会卡在reading project中,那是可能你的电脑的pro.user文件默认用其他的IDE默认打开了(比如VS),所以解决方法很简单!**方法一:**可以在windows对工程目录的.user文件的描述看到,所以建议删掉.user文件和类似.user.13511这种文件,不用担心,并没有删掉重要文件。**方法二:**或者在win...原创 2020-01-13 10:00:48 · 4144 阅读 · 4 评论