qt
qt
dragoo1
这个作者很懒,什么都没留下…
展开
-
Qt QFile::copy创建文件问题(转)
最近发现在老项目上出现一个bug:一个ini的配置文件添加在qrc文件中,代码中通过QFile读取并copy到缓存目录中,配置文件内容在UI上显示并支持增删改,但在win10上,用户添加内容项后下次启动程序发现新添加内容丢失。也就是说 在win10上QFile::copy创建的文件属性默认是只读的,如果需要读写,可以在之后调用QFile::setPermissions函数设置文件的permissions和ownership。转载 2024-05-31 09:58:28 · 152 阅读 · 0 评论 -
对‘QBasicAtomicInt_fetchAndAddOrdered(int volatile*, int)’未定义的引用
undefined symbol: _Z34QBasicAtomicInt_fetchAndAddOrderedPVii原创 2022-10-28 10:51:04 · 383 阅读 · 0 评论 -
error: narrowing conversion of ‘XXX’ from ‘int’ to ‘char’ inside { }(转)
问题原因大概是使用-std=c++0x后,char类型范围出现了缩减,导致了报错。转载 2022-10-28 09:48:33 · 2677 阅读 · 0 评论 -
QT DLL的使用问题---QWidget: Must construct a QApplication before a QPaintDevice(转)
QWidget: Must construct a QApplication before a QPaintDevice转载 2022-09-27 09:32:45 · 220 阅读 · 0 评论 -
QPushButton槽函数触发两次的问题(转)
以前经常使用qt creator界面管理直接跳转到槽函数没发现这个问题,今天手动写了个槽函数发现按键会触发两次。根据网上的说法是按键会自动连接一个槽函数,如果我们手动添加的槽函数命名规则符合槽函数的命名规则的话,此时就会出现触发两次的问题。...转载 2022-08-31 11:05:25 · 1156 阅读 · 0 评论 -
Qt之connect函数—信号槽连接的几种方式和优缺点(转)
使用SIGNAL和SLOT宏是Qt4的写法,在Qt5中不仅支持使用SIGNAL和SLOT宏的写法,也支持使用&类名::函数名的写法。转载 2022-08-31 10:33:29 · 2891 阅读 · 0 评论 -
QRegExp
QRegExpqt正则构造函数QRegExp(const QString &pattern, Qt::CaseSensitivity cs = Qt::CaseSensitive, QRegExp::PatternSyntax syntax = RegExp)cs指定是否区分大小写。默认区分大小写,syntax 指定匹配模式, 有以下几种匹配模式QRegExp::PatternSyntax 描述 QRegExp::RegExp 类似Perl的模式匹配语法 QRe转载 2022-04-28 11:15:40 · 1003 阅读 · 0 评论 -
Qt学习: QCloseEvent关闭事件的使用及代码示例(转)
QCloseEvent事件是指,当你鼠标点击窗口右上角的关闭按钮时,所触发的函数.如果你没有重写virtual closeEvent(QCloseEvent*event);这个虚函数的话,系统是默认接受关闭事件的,所以就会关闭窗体,但有的时候,比如在记事本程序中,但你的文本未保存时,点击关闭按钮,就会跳出是否保存的提示框,这是因为它重写了关闭事件这个虚函数.首先用Qt设计师拖拽一个QTextEdit,然后进行整体布局.以下是”c.cpp”下的代码:#include "c.h"c::c(QW转载 2022-03-28 10:00:11 · 2677 阅读 · 0 评论 -
QDialog的accept()函数和reject()函数(转)
这两个函数作用分别是:都能够隐藏QDialog,但是返回值不同,一个是Accepted,一个是Rejected,返回值不同的作用是:区分用户按下的OK按钮,还是Cancel按钮。f(my1.exec()==QDialog::Accepted)my1是一个对话框,当调用exec方法时,弹出,等待用户响应,用户可能点击确定,那么exec返回QDialog::Accepted值,如果点击取消则返回QDialog::Rejected,这句话是通过返回值来确定用户的响应结果1.如果使用exec()默认转载 2022-03-17 11:02:06 · 3913 阅读 · 0 评论 -
Qt读取UTF8与GBK格式文件乱码问题(转)
window下文件一般为GBK格式文件,而Linux系统下文件一般为UTF8文件,当文件读取格式不匹配时,读取到的数据显示为乱码,所以需要转码.GBK格式文件读取QFile file("GBK.txt");file.open(QFile::ReadOnly | QFile::Text);QTextCodec *codec = QTextCodec::codecForName("GBK");QString content = codec->toUnicode(file.readAll());转载 2022-03-16 18:53:02 · 1587 阅读 · 0 评论 -
QT中$$PWD的意思(转)
$$PWD的意思为当前目录如pro文件中:INCLUDEPATH += $$PWD/lib/x64-win64$$PWD表示的意思就是pro文件所在的目录。转自:https://blog.csdn.net/cashmood/article/details/114979405转载 2022-03-15 17:37:20 · 13655 阅读 · 0 评论 -
QT+event() + 事件过滤器(转)
其存在的意义:mywidget.h:#ifndef MYWIDGET_H#define MYWIDGET_H#include <QWidget>namespace Ui {class MyWidget;}class MyWidget : public QWidget{ Q_OBJECTpublic: explicit MyWidget(QWidget *parent = 0); ~MyWidget();protected:转载 2021-12-28 10:22:04 · 90 阅读 · 0 评论 -
undefined symbol: _Z34QBasicAtomicInt_fetchAndAddOrderedPVii
原因:因为程序需要的qt动态库版本不一致造成的,主要是qtcore、qtgui、qtnetwork等相关的库版本不一致解决:随便新建一个qt widgets工程,使用ldd -r 查看下系统自带的qtcore、qtgui、qtnetwork的路径,然后把系统qt库的文件覆盖出问题的dll所引用的qt库文件即可。参考:https://blog.csdn.net/weixin_44819948/article/details/117119245...原创 2021-12-22 16:31:37 · 766 阅读 · 0 评论 -
error: invalid new-expression of abstract class type原因及解决(转)
new一个对象时报错如下:Error:invalid new-expression of abstract class type XXX原因:子类没有完全实现父类的纯虚函数,即父类中有函数未在子类中实现,第一行error下面会提示具体是哪个函数没有实现。解决:删除父类中未实现的纯虚函数或在子类中实现它————————————————版权声明:本文为CSDN博主「AnronSakura」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。原文链接:https:转载 2021-12-20 14:30:30 · 8388 阅读 · 0 评论 -
qt运行时/usr/bin/ld: cannot find -lGL(转)
执行:sudo apt-get install libgl1-mesa-dev转自:https://blog.csdn.net/ljh618625/article/details/80570501转载 2021-12-09 15:44:37 · 226 阅读 · 0 评论 -
error: ‘xcb_generic_event_t’ was not declared in this scope
代码:bool tray::nativeEventFilter(const QByteArray &eventType, void *message, long *){ qDebug("tray::nativeEventFilter:%s\n", eventType.data()); if (eventType == "xcb_generic_event_t") { xcb_generic_event_t* ev = static_cast<xcb_ge原创 2021-11-25 13:56:26 · 638 阅读 · 0 评论 -
error C2065: “qApp”: 未声明的标识符
英文版:error: qApp was not declared in this scope.解决:添加头文件#include <QApplication>原创 2021-11-25 10:27:33 · 977 阅读 · 0 评论 -
QT里windows下获取窗口句柄的方法(转)
在windows下,QWidget类的WId winId () const 成员函数返回的就是窗口句柄.转自:https://blog.csdn.net/LaoWu_/article/details/5814191转载 2021-11-08 20:00:50 · 5065 阅读 · 0 评论 -
Qt无边框窗口实现拖动和改变大小
主要参考了https://blog.csdn.net/qq_16952303/article/details/51974502?locationNum=8&fps=1,但原文章在某些情况下,鼠标形状不刷新,改进了一版。MyResizeWidget.h#ifndef MYRESIZEWIDGET_H#define MYRESIZEWIDGET_H#include <QtGui>#define EDGE_MARGIN 8namespace Ui {class MyRe原创 2021-11-05 15:02:28 · 2165 阅读 · 3 评论 -
Qt中各个widget前后位置的设定(转)
这两天在总结一些以往project中遇到的问题,正好别组有同事问我关于Qt中各个widget窗口的前后位置是如何定义的,这里就总结一下: 在Qt中,所有问题都要一分为二,讨论两种不同的情况:一个是最常用的QWidget体系,而另外一个则是QGraphicsWidget体系。 ①:在常用的QWidget体系中,设置前后位置是主要是用raise(),underStack(),hide()函数。 理论为:在Qt中每个widget窗口都维持着自己的一个创建栈(widge...转载 2021-10-18 13:55:46 · 2157 阅读 · 0 评论 -
在qt中设置优先加载与程序同级目录的动态链接库的方法
windows 下一个程序的dll搜索路径首先是程序目录,然后是一些系统目录。linux 下的可以通过设置 LD_LIBRARY_PATH 等方法来添加搜索路径,但是这些路径是定死的,如果要实现程序目录,就要使用链接时的rpath选项。rpath 适用于 elf 文件,不适用 pe。方法:在项目的.pro文件中添加以下代码(注意位置尽量靠前)QMAKE_LFLAGS += "-Wl,-rpath,\'\$$ORIGIN\'"添加完以上参数后,程序会优先从这个路径中查找动态库,$ORIGIN代原创 2021-09-29 00:36:52 · 1879 阅读 · 0 评论 -
vs2010保存和编译文件导致moc文件自动排除的解决方法
https://www.136.la/shida/show-409040.html我有一个VS2010解决方案,有几个基于Qt的项目。每当我修改项目中的文件时,生成的文件(moc _ * .cpp)会更改其属性以从构建中排除。解决方法:可以把头文件和源文件从项目移除,再添加进来就ok了参考:https://www.thinbug.com/q/50952414https://my.oschina.net/chamsdoncon/blog/1523384https://www.136.l.原创 2021-09-26 10:02:26 · 307 阅读 · 0 评论 -
QTextedit获取行数和每行字符
QString qstrAll("");QString qstrPlainText = ui->editUnit->toPlainText();QTextDocument* pDocument = ui->editUnit->document();QTextBlock block = pDocument->begin();while (block.isValid() && block.layout()){ QString qstrBlock = b.原创 2021-09-24 16:45:18 · 3454 阅读 · 0 评论 -
triggered传递参数
我给某个控件注册了一个槽函数,代码是这样的:connect(ui->manageCla, SIGNAL(triggered()), this, SLOT(onItemClicked()));然后我想问一下,怎么给 onItemClicked()这个槽函数传递参数啊?------解决方案--------------------connect(ui->manageCla, SIGNAL(triggered()), this, SLOT(onItemClicked()));你这里是在同一个类,原创 2021-09-17 10:36:21 · 1087 阅读 · 0 评论 -
qt的pos()和globalpos()(globalpos是相对于桌面的)(转)
参考:http://www.cppblog.com/izualzhy/archive/2011/03/21/142408.html原文粘贴:新建一个窗口程序,然后创建一个QMenu对象。在构造函数里初始化menu = new QMenu("menu", this); //menu在头文件声明QAction *action = new QAction(tr("1111"), this); //为使目录较大,能看见,我们添加一个actionmenu->addAction(action);然转载 2021-09-09 13:44:38 · 965 阅读 · 0 评论 -
Qt按ESC关闭模态对话框不触发closeEvent()问题解析(转)
事情是这样的:今天调试窗体,突然发现按ESC键居然跳过closeEvent()关闭了对话框!我的关闭判断都在closeEvent()里,这直接导致非正常关闭了正在进行的工作。先重建下场景:调用处:{ Corpus corpusDialog(this); corpusDialog.exec();}典型的模态对话框,因为用了exec()。Corpus对话框类中覆盖了closeEvent(),其中父类的closeEvent()为虚函数。这样,当我按ESC关闭对话框就出现了如题情景。转载 2021-08-10 19:27:53 · 1514 阅读 · 0 评论 -
double free or corruption (!prev)
环境:linux,g++4.9,qt4.8.7关闭应用程序时崩溃,下面是qtcreator应用程序输出窗口信息:*** Error in `/home/test/source/Ofd_Pro_Master/build-surSenReader_all-unknown-u8c03u8bd5/surSenReader': double free or corruption (!prev): 0x00000000013248a0 ***======= Backtrace: =========/lib原创 2021-08-06 10:54:53 · 2226 阅读 · 0 评论 -
error: variable `QPainter painter‘ has initializer but incomplete type
/home/test/test0805/mainwindow.cpp:19: 错误: variable ‘QPainter paint’ has initializer but incomplete type QPainter paint(this);解决方案:在.cpp文件中添加#include <qpainter.h>参考:https://blog.csdn.net/qq_31674679/article/details/80150058...原创 2021-08-05 15:50:40 · 1132 阅读 · 0 评论 -
窗口总在最前端显示后挡住了一切QMessageBox
按照论坛上提供的方法,将窗口设置为前端显示了: setWindowFlags(windowFlags() | Qt::WindowStaysOnTopHint);同时我重新实现了closeEvent()void MainWindow::closeEvent(QCloseEvent *event){ QMessageBox message(QMessageBox::Question,tr("警告"), tr("要退出吗?"), QMessageBox::Yes | QMessageBo...原创 2021-07-30 17:16:11 · 2194 阅读 · 0 评论 -
Ubuntu上Qt安装以及配置完整步骤(转)
Qt是一个跨平台的C++图形用户界面库,我们平时所说所使用的Qt,准确的来说是它的GUI编程部分。Qt提供给应用程序开发者建立图形用户界面所需要的功能,并且Qt很容易扩展。基本上,Qt和X Window上的Motif、Openwin、GTK等图形界面库和Windows平台上的MFC、OWL、VCl以及ATl是相同类型的东西。(1)安装 Qt:第一步:到官网http://download.qt.io/archive/qt/下载 Qt 安装包,此处本人安装的是 qt-opensource-linux转载 2021-07-29 10:24:02 · 830 阅读 · 0 评论 -
QT Creator 调试出现汇编格式 解决办法如下(转)
今天遇到一个比较奇怪的事情,之前在创建文件夹的时候都是使用的英文,结果今天不小心在创建目录的时候加上了几个中文字,结果在Qt Creator中编写程序进行调试的时候,居然神奇的出现了反汇编的格式,很无奈,以前都一样呀,环境也没有改变呀,为啥今天就这样了?如图:几经周折,发现我这个项目就是放在了这个唯一带有中文的目录下果断更改目录:再次打开项目之后,点击 Bulid栏 里面有个Clean all,点击一下,进行清理,再重新进行调试就ok了:所以,至此,问题就解决了,希望可以转载 2021-07-28 18:50:43 · 1666 阅读 · 1 评论 -
qt4 cmake 添加资源文件
1、添加资源文件set(QRC_FILES res.qrc)QT4_ADD_RESOURCES(can_ui_QRC_RCC ${QRC_FILES})2、添加到动态链接库add_library(${PROJECT_NAME} SHARED ${can_ui_QRC_RCC})参考:https://blog.csdn.net/baidu_35557785/article/details/52072563...原创 2021-07-28 10:39:57 · 741 阅读 · 0 评论 -
QT DLL的使用问题---QWidget: Must construct a QApplication before a QPaintDevice(转)
用Qt编写的dll有两个使用方式: 1)启动启动一个Qt程序,程序自动会创建QApplication 2) 不启动Qt桌面程序,直接调用dll。此时须new QApplication static QApplication *g_application = NULL; static int g_iApplicattion = 1; ...转载 2021-07-23 11:29:38 · 666 阅读 · 0 评论 -
Qt中使用qrc管理和使用资源文件(转)
qrc资源文件一直有点搞不清楚,特别是前缀,到底加什么,讲的不太清楚,我的项目也因此搞的很乱.现在总结一下.1. 比如qss资源文件,我在Resources文件夹下新增一个qss.qrc文件,这个文件会自动添加到pro文件中(?我好像自己添加进去的).RESOURCES += res.qrc2. 在Resources文件夹再新建几个要用到的目录qss用于放置需要用到的qss文件如test.qss.3. 打开qss.qrc文件,添加前缀 /qss, 再添加文件 qss/test.qss.4转载 2021-07-19 11:31:27 · 1752 阅读 · 0 评论 -
qfiledialog保存时为文件名添加后缀
// filter = "另存为(*.ofd);;另存为(*.pdf)"QFileDialog *fileDialog = new QFileDialog(NULL); fileDialog->setAcceptMode(QFileDialog::AcceptSave);fileDialog->setWindowTitle("另存为..."); fileDialog->setDirectory(dir); fileDialog->setFilter(filter);fi.原创 2021-07-14 18:34:44 · 2096 阅读 · 0 评论 -
解决QProcess对象调用execute执行cmd命令不支持中文和空格的问题(转)
2014-08-05 06:37⁄工业·编程⁄ 共 804字 ⁄ 字号小中大⁄评论 1 条在QT中要想执行调用cmd命令: 一种方式是使用system()函数,但是此函数没有返回值,有时不太方便, 另一种方法就是生成QProcess对象,调用其execute函数,有时当你用这个方法时,当cmd命令含有中文和空格时就不执行。下面来说说这个情况。仔细看QProcess的API,发现有重载的两个execute函数:execute ( const QStrin...转载 2021-05-26 18:30:31 · 1388 阅读 · 0 评论 -
Qt .pro文件条件配置与条件编译(转)
在用Qt进行嵌入式linux开发时,有时为了调试便利,桌面版linux环境也会配置一份,这样在编译时就会调用不同版本的库。qmake提供很多功能强大的内置函数和变量,为动态编译项目提供了便利。方式一:使用contains()DEFINES += RUN_ON_EMBEDDEDSYSTEMif(contains(DEFINES,RUN_ON_EMBEDDEDSYSTEM)){#contains和{必须在同一行,否则报错INCLUDEPATH += /root/802/trunk/dsp...转载 2021-05-24 11:08:21 · 384 阅读 · 0 评论 -
QtCreator技巧-代码折叠/展开(转)
代码一多时很难找到重点内容和容易让人心情不好。通过代码折叠功能让代码安安静静地在一角落躺着,岂不是一件美滋滋的事。折叠/展开方法1.光标指向对应的代码块操作ctrl + shift + <折叠代码块和ctrl + shift + >展开代码块;2.edit(编辑)->advanved(高级)->Toggle Fold All(切换折叠所有);3.在编辑界面点击行号所在的三角形图标可以折叠和展开代码。折叠/展开范围{}所包含的代码块。/**/所包含的注释。——转载 2021-04-29 11:19:05 · 2808 阅读 · 0 评论 -
QSettings立即保存ini文件
#include "mainwindow.h"#include <QApplication>#include <QSettings>int main(int argc, char *argv[]){// QApplication a(argc, argv);// MainWindow w;// w.show(); //return a.exec(); QSettings configIniWrite("d:\\test.ini",.原创 2021-04-28 15:40:59 · 627 阅读 · 0 评论 -
execution_character_set报warning: unknown pragma ignored
环境:win10,qtcreator5.14.2-x86,vs2017由于中文乱码,参考网上文章后,在代码里添加#if defined(_MSC_VER)#pragma execution_character_set("utf-8") #endif后,报警告报warning: unknown pragma ignored,原来只是中文乱码问题,现在编译不过了。继续查,发现execution_character_set只在vs2015里支持,继续搜索方案,解决方法如下:在pro原创 2021-04-09 17:25:25 · 4430 阅读 · 0 评论