Qt
小志带你干BUG
only_a_Heroic_car
不为失败找借口,只为成功找出路
展开
-
Qt tabwidget中插入widget
qt tabwidget 插入 widget 标签原创 2023-08-03 23:00:00 · 3325 阅读 · 0 评论 -
Qt 交叉编译
背景本来Qt源码是可以直接使用交叉编译器编译通过,也可以使用编译通过的qmake生成可执行程序;但是可执行程序在没有Qt的环境下无法正常运行。因此我们不只是仅需要编译源码,还需要将依赖的环境编译出来,这样打包可执行程序的同时将相应的依赖拷贝到目标环境下,才可以在目标环境正常运行。环境配置由于Qt官方文档中的插件说明是以X11展开,而Qt使用X11框架来在linux下显示图形界面的,所以按道理来说只要在编译Qt源码指定了X11参数之后就应该可以正常显示界面;但是在实际运行环境中运行可执行程序时发现,还原创 2022-04-25 11:10:30 · 9536 阅读 · 4 评论 -
Qt 设置运行时库查找目录
一、为什么要设置运行时库?linux下运行时库默认查找/usr/lib目录,但是在加载第三方目录时,我们并不想将动态库放到系统目录下,而是想放到应用程序的安装目录下,因此需要设置运行时库。二、使用步骤在pro工程文件添加如下: QMAKE_LFLAGS += -Wl,-rpath,\'\$\$ORIGING\' 或QMAKE_RPATHDIR += :\'\$\$ORIGING\' 不过第一种方式我并没有设置生效,因此推荐第二种方式。...原创 2021-12-21 17:27:28 · 2602 阅读 · 0 评论 -
linux下编译qt5源码error: unrecognized command line option ‘-fuse-ld=gold’
项目场景:需要在其他环境下使用Qt项目但是Qt5.12.8 linux 只有x64 ,在想要进行x86构建的同时想到需要交叉编译, 于是开始入坑。。。Qt 交叉编译 qtbase源码 (用于生成构建套件)问题描述:本来终于可以构建了,但是在执行configure时遇到错误:error: unrecognized command line option ‘-fuse-ld=gold’ 解决方案:通过configure的help发现,-fuse-ld=gold这个参数是在执行时au原创 2021-12-01 15:45:58 · 1661 阅读 · 0 评论 -
Qt调用Excel在Win7调用失败,setControl Win7 Excel失败
问题描述:相关代码如下: QAxObject *excel = new QAxObject; if(excel->setControl("Excel.Application")) { ... }else{ ... }看起来没有任何问题,当然在Win10下运行也没有问题;但是当你把程序打包之后放到Win7去运行,你会发现跑到else中了,也就是调用Excel失败。 解决方案:首先我以为是Excel位数问题,因为我的程序是64位但原创 2021-09-15 16:32:08 · 1400 阅读 · 1 评论 -
Qt QTabView导出Excel 数据格式问题 科学计数法 与 0 与 日期时间格式中间T的问题
问题描述:从QTabView导出到Excel,网上有很多帖子,再次不再多述,主要记录一下遇到的问题以及解决办法:从QTabView中导出数据到Excel后:一:发现有数据显示科学计数法;二:发现日期和时间中间有个T,而且末尾有三个小数点解决方案:一:科学计数法问题:1、如果能通过修改单元格格式显示正常的话,那么恭喜你!2、但是我将单元格格式修改之后数据异常,位数异常数据异常,而且后面n位全是0;据网上查到的资料显示,超过16位的数字要在数据前加单引号,那就在导出数据时将数据前加一个单引号原创 2021-09-01 11:35:01 · 821 阅读 · 0 评论 -
Qt 界面 控件 显示俄语时字符间距问题
问题描述:不说废话,看图说话,效果如下:俄语显示不正常,字符中间的间隙。ui->pb_test->setText("выход"); 解决方案:设置字体为Arial。一开始我以为是locale的问题,修改之后不起作用,拷贝到word之后才突然发现字体会对显示有影响,设置字体方式:1、代码修改 QFont tmp_font("Arial"); ui->pb_test->setFont(tmp_font); ui->pb_test->原创 2021-08-24 19:24:39 · 996 阅读 · 0 评论 -
Qt addDatabase 引发的connection ‘qt_sql_default_connection‘ is still in use
项目场景: Qt 使用 代码进行数据库数据的拷贝,将一个数据库中的数据导入另一个数据库。问题描述:这时是需要同时连接两个数据库的,但是在连接第二个数据前addDatabase时引发了Qt的警告QSqlDatabasePrivate::removeDatabase: connection 'qt_sql_default_connection' is still in use, allqueries will cease to work.意思是说已经有数据库引用了默认的数据库连接名。而且:原创 2021-08-11 14:46:20 · 3877 阅读 · 0 评论 -
Linux Qt cannot find -lGL错误
问题描述:将项目移植到linux之后,用Qt编译发现 编译错误cannot find -lGL 原因分析:1、库的问题嘛:首先想到代码中有些头文件或库文件与windows不兼容。于是新建空工程编译发现同样有这个问题;2、Qt问题:我同时装了两个版本Qt,换版本编译仍然编译错误;3、配置或环境问题:也许这个库是linux系统环境库,但是Qt 找不到。于是查找资料发现如下:Qt 默认在 /usr/lib/ 目录下查找动态链接库,但是很多 Linux 发行版将 OpenGL 链接库放在其它目录原创 2021-07-28 17:53:46 · 419 阅读 · 0 评论 -
Qt runtimeError的一种情况
问题描述:修改了vs库之后,Qt从新调用动态库,引发了runtime error 原因分析:debug跟进发现是有条语句引起的这个错误,将这个语句注释之后发现无此问题。最终怀疑是因为嵌套导致,将语句分开之后正常...原创 2021-07-27 10:22:51 · 689 阅读 · 0 评论 -
QStringList中begin()、end()与first()、last()
QStringList的begin:返回的是迭代器指向第一项iteratorQStringList的end:返回的是迭代器指向最后一项iteratorQStringList的last:返回列表第一项的引用,前提该表不为空QStringList的last:返回列表最后一项的引用...原创 2019-08-16 19:59:30 · 5513 阅读 · 3 评论 -
Qt项目-打开文件失败
项目场景:Qt:项目中文件操作问题:项目存在读写文件操作,自测发现问题。问题描述:测试时发现路径中存在中文时打开失败,而且写中文路径文件也失败,写中文文件乱码。于是写了测试代码进行测试… QString fileName = QFileDialog::getOpenFileName(this, tr("选择文件"), "./", tr("文件(*.*)")); cout << fileName.toStdS原创 2021-07-15 10:57:20 · 1990 阅读 · 0 评论 -
Qt 构建出现的诡异问题记录
项目场景:Qt 项目问题描述:一、图标异常在.pro中添加RC_ICONS图标后生成的exe将带有图标,但是将图标更换之后,生成路径中的exe图标没有随之变化,但是将exe从目录拷贝出来之后exe图标变了!!它变了!!!,然后用打包工具打包之后图标又变回去了!!和生成路径中的exe图标一致了!但是整个过程中exe运行时界面图标以及任务栏图标都是正常的!!! 原因分析:一、图标异常1、首先怀疑rc资源文件缓存问题,先将项目清除重新构建。未解决…2、仍然怀疑资源缓存问题,怀疑清除时未清除原创 2021-07-15 10:45:26 · 487 阅读 · 0 评论 -
8002801D 库没有注册
在电脑上运行Qt时调用QFileDialog时,输出框报了一个错:mincore\com\oleaut32\dispatch\ups.cpp(2125)\OLEAUT32.dll!74D8DA18: (caller: 74D8BCCF) ReturnHr(1) tid(b290) 8002801D 库没有注册。现象:1、报错之后能够正常运行,只是在输出框有个提示错误;2、立刻将程序关闭,但是在任务管理器中发现还会卡死一段时间;(怀疑库问题导致卡死,等待系统杀死)3、换Qt版本不能解决,排除Qt版本原创 2021-06-17 14:10:46 · 3351 阅读 · 0 评论 -
Qt使QTextEdit背景透明
方法一、textEdit->setStyleSheet(“background-color: rgb(255, 255, 255, 60);”);方法二、添加qss样式表QTextEdit#tx_msg{ background-color: rgb(255, 255, 255, 60);}}原创 2020-11-27 17:30:15 · 2224 阅读 · 0 评论 -
Qt工程cmake之后用vs打开汉字在界面显示乱码
用Qt编写的界面,在cmake整理后用vs2013打开时,中文汉字显示错误,奇数个汉字报错缺少分号,并且界面上显示乱码;以下提供个人的两个解决办法:一、文件-高级保存选项,选择utf-8编码,无签名格式。二、 补全半角的空格使汉字为偶数个。发现使用了方法一也不太好使,某些情况下还是报错显示乱码,因此提供方法二。个人喜欢方法二,更好使一些...原创 2020-11-27 17:25:57 · 600 阅读 · 0 评论 -
CMake编译Qt工程时的问题
Policy CMP0071 is not set: Let AUTOMOC and AUTOUIC process GENERATED files.我们已经包含了AUTOUIC ON,也包含了AUTOMOC,但是构建Qt带界面的工程时发现cmake还是报了上述警告,原因是cmake版本问题,cmake>3.10版本即可,安装的cmake程序要大于3.10,同时cmakelist中设置的版本也要大于3.10,如cmake_minimum_required(VERSION 3.10.0)...原创 2020-11-25 10:46:26 · 675 阅读 · 0 评论 -
Qt找不到Mysql驱动
Qt新安装了个5.12.8发现无法连接Mysql数据库,运行时提示没有Mysql驱动,首先在程序中添加了代码查看支持的驱动 qDebug() << QSqlDatabase::drivers(),在应用程序输出框中会打印出所有支持的数据库驱动,我解决问题之后现在其中包括QSQLITE QMYSQL QMYSQL3 QODBC QODBC3 QPSQL QPSQL7等等这几种驱动,下面找不到驱动时就有两种情况了:一、⑴其中包括你要连接的数据库Mysql的驱动,在这种情况是是最简单的,你只需要原创 2020-08-07 16:05:56 · 1593 阅读 · 3 评论 -
Qt信号与槽连接connect时候警告在信号文件中找不到信号函数
看了半个小时确定代码没有问题,QObject也包含了,但是还是对应不上信号与槽后来才无意中发现,connect连接信号与槽时,connect函数里边不能出现参数,只可以放参数类型,说明信号与槽的参数类型,但是不能写参数;在某些版本中,信号有可能不会自动补全出来自己写的信号函数,暂且归于编译器的问题,这种情况下需要手写信号函数去对应,但是不安全容易写错,除非代码补全编译器出问题或者软件运行卡顿情况下有问题否则不建议这么做。举个例子吧eg://这样写就会出现上述问题,提示找不到信号,而且不会自动补全代码原创 2020-06-19 16:49:37 · 1683 阅读 · 0 评论 -
Qt中为什么要包含QObject
个人认为是因为此头文件包含了元对象系统,只有包含头文件之后才可以使用元对象系统,比如信号与槽机制等原创 2020-06-09 11:32:57 · 294 阅读 · 0 评论 -
Qt项目分组开发.pri与.pro
为了将Qt工程中的大型项目分组开发,将项目分成多组文件,每个文件负责一种或多种功能分组的实现方法:1、在工程目录下创建分组文件夹, eg:network文件夹2、分组目录下创建分组.pri文件 , eg:network.pri3、在.pro工程文件中添加.pri文件,添加方法, eg:include($$PWD/network/network.pri)4、构建工程使出现.pri分组,接下来就可以在.pri工程中添加相应的文件了...原创 2020-06-09 11:31:19 · 460 阅读 · 0 评论 -
Qt项目exe打包
自从学会命令行自动打包后,再也不用找文件复制啦!1、找到生成的构建运行编译后的exe文件,复制到目标目录下2、运行Qt ***(版本)(MinGW 版本)命令行,eg:Qt 5.12.8(MinGW7.3.0 32-bits)3、cd到目标目录下,运行命令 windeployqt ***.exe4、系统就会自动为***.exe文件找到相应依赖文件...原创 2020-06-05 16:39:32 · 134 阅读 · 0 评论 -
Qt 获取时间日期
QTime获取当前时间格式为 时分秒QDataTime获取日期时间格式为 年月日时分秒 QDateTime dateTime(QDateTime::currentDateTime()); QString qStr = dateTime.toString("yyyyMMddhhmmss"); /*将时间转换为字符串格式为eg:201908061213;*/...原创 2019-08-16 20:15:31 · 880 阅读 · 0 评论