Qt
CodingLife99
这个作者很懒,什么都没留下…
展开
-
关于Qt中动态库(共享库)dll的疑问
Q:我记得隐式调用dll文件,需要把lib和dll都放在运行目录下(lib是引导库,起到索引的效果).但qt中我没有把.a文件放到运行目录下,只是放的dll,发现运行也是正常的.这个该怎么解释呀A:刚才问了同事,我理解有误。其实在链接过程中引导库里面的信息就写到exe里了。所以运行时就不需要把引导库拷到运行目录了。(注意链接是在运行之前,一般构建包括编译和链接)...原创 2021-09-05 16:12:17 · 195 阅读 · 0 评论 -
Qt的QtScript使用记录
.qs结尾的文件是Qt的脚本文件,和.js比较类似,都属于ECMA 标准。一个可以运行起来的例子:https://www.cnblogs.com/lvdongjie/p/4026884.html从XML中读取内容:发现https://www.c-sharpcorner.com/blogs/get-data-from-xml-content-using-javascript中的不好使,感觉通过qt调用不支持。原创 2023-01-06 20:20:20 · 247 阅读 · 0 评论 -
linux下使用QtInstallerFramework制作安装包
Linux下QtInstaller安装问题总结原创 2023-01-04 21:25:04 · 305 阅读 · 0 评论 -
用到的正则表达式记录
000…999: ^[0-9]{3}$ //匹配000-999原创 2022-09-01 16:41:44 · 151 阅读 · 0 评论 -
QtInstallerFramework制作的安装包安装后快捷方式没有图标
使用如下的代码去配置installscript.qs,发现安装后生成的快捷方式没有图标。为啥官方给出来的例子是不好使的呢,难道只是为了展示更多的参数使用?参数给去掉,图标就能够正常显示了。原创 2021-09-23 19:09:18 · 957 阅读 · 0 评论 -
QT的信号与槽函数
QT中通过信号(signal)和槽函数(slot)将事件和响应函数连接起来(可以类比MFC中的操作和对应的On开头的响应函数).它的优点在于信号和槽函数是松耦合的关系,你可以通过connect将两者连接起来,也可以通过disconnect将两者断开....原创 2020-06-06 00:40:00 · 3893 阅读 · 0 评论 -
Qt智能指针易错点
Qt智能指针易错点。原创 2022-07-24 15:47:40 · 588 阅读 · 0 评论 -
Qt中对回车键捕捉和处理的例子
ui->tableWidget->installEventFilter(this);//注册事件过滤器bool MainWindow::eventFilter(QObject * obj, QEvent * event){ if (obj == ui->tableWidget) { if (event->type() == QEvent::KeyPress) { QKeyEvent *keyEvent = sta...原创 2020-09-18 11:21:00 · 845 阅读 · 2 评论 -
Qt在main函数中使用connect
参见这篇文章:https://stackoverflow.com/questions/16734542/unable-to-connect-signal-to-a-function-inside-main原创 2021-09-23 18:45:55 · 1419 阅读 · 0 评论 -
Qt installer-framework报“ directory you selected already exists“如何解决
Qt the directory you selected already exists and contains a installation.choose a differenthttps://stackoverflow.com/questions/46455360/workaround-for-qt-installer-framework-not-overwriting-existing-installation原创 2021-09-23 18:32:59 · 907 阅读 · 0 评论 -
Qt创建和使用动态库(共享库)的例子
创建方:.pro中:TARGET = SharedLibraryTEMPLATE = libDESTDIR = $$PWD/../libDEFINES += SHAREDLIBRARY_LIBRARYSharedLibrary.h中://导出类class SHAREDLIBRARYSHARED_EXPORT SharedLibrary{public: SharedLibrary()=default; int add(int a, int b);};//导出函数in原创 2021-09-05 19:04:00 · 318 阅读 · 1 评论 -
Qt崩溃捕捉记录
1.一篇好的实例文章,按照里面的内容做了Demo: Using Google Breakpad with Qtdmp文件需要使用VS打开分析,dmp文件依赖.pdb文件才能分析。默认情况下,Debug才会生成.pdb文件,Release没有。#### 待研究:Qt 使用 Google Breakpad 捕获程序崩溃报告(dump文件)QT中使用google breakpad捕获程序崩溃异常这个对Breakpad的原理做了介绍,但没有按照它的代码去做:12.5-使用Qt实现跨平台C++崩溃捕获,原创 2021-07-06 18:41:32 · 1706 阅读 · 0 评论 -
Qt During startup program exited with code 0xc0000139.
更新完代码后,报如上的错误.网上搜索了下,说可能是动态库缺失或者不匹配.于是把旧的动态库给删掉,使用新生成的,问题解决.参考文章:https://www.jianshu.com/p/38ffc6cff0f3原创 2021-06-09 15:50:25 · 978 阅读 · 0 评论 -
QPainter使用注意点
今天使用QPainter绘制图形,把过程写到了MainWindow的构造函数中了.发现没有如期出现绘制好的图形.后来发现网上的例子大多都是写在paintEvent函数中的.后来查看了QPainter的官方文档,有如下的叙述Warning:When the paintdevice is a widget,QPaintercan only be used inside a paintEvent() function or in a function called by paintEvent(...原创 2021-05-26 19:54:54 · 885 阅读 · 0 评论 -
Qt 的notify函数捕获事件
Qt中可以使用notify来捕获所有的事件。如果你想要捕获事件,需要创建新的类去继承自QApplication,并重写notify函数。需要注意,在初始化自定义类时要先初始化QApplication类(QApplication管理GUI程序的控制流和主要设置。对于用Qt写的任何一个GUI应用,不管这个应用有没有窗口或多少个窗口,有且只有一个QApplication对象。)。具体实现代码如下:myapplication.h#ifndef MYAPPLICATION_H#define MYAPPLIC原创 2021-04-12 21:20:14 · 2179 阅读 · 1 评论 -
C++子类的构造函数后面加:冒号的作用(转)
在C++类的构造函数中经常会看到如下格式的写法:MyWindow::MyWindow(QWidget* parent , Qt::WindowFlags flag) : QMainWindow(parent,flag)上述语句中单冒号(:)的作用是表示后面是初始化列表,一般有三种使用场景。1、对父类进行初始化 (目的是什么呢?在创建子类对象时,能够把参数传给父类,从而先完成对父类的初始化.子类构造函数必须要调用父类的构造函数(无论显式还是隐式))调用格式为“子类构造函数 : 父类构造函数”,如下,转载 2021-04-12 20:00:38 · 1546 阅读 · 1 评论 -
Qt遇到的问题及解决方案
控件 -> 视图 -> Locals and Expressions,如此便可以把它复现出来.原创 2021-04-10 18:57:18 · 1206 阅读 · 1 评论 -
Qt库总结
在Windows下:若使用的是MSVC,则库文件为.lib和.dll;若使用的是MinGW,则为.a和.dll;在Linux下:则库文件为.so、.so.1、.so.1.0 和 .so.1.0.0 - .liblinux下生成的库文件可以拷到/usr/local/lib下,然后再配置/etc/ld.so.conf文件,把/usr/local/lib路径加上去:include /etc/ld.so.conf.d/*.confinclude /usr/local/lib这样就配置一次库目..原创 2021-03-15 20:59:28 · 766 阅读 · 0 评论 -
Qt中.pro中相关介绍
LIBS 中-L后面跟的是库路径,-l跟的是库文件名字。原创 2021-02-26 00:36:54 · 374 阅读 · 0 评论 -
Qt中的线程归纳(待整理)
When to use alternative threads:里面涉及到readyRead,待看.地址:https://evileg.com/en/post/150/Detailed Description:https://doc.qt.io/archives/qt-5.6/qthread.html#QThread原创 2021-02-02 21:23:30 · 62 阅读 · 0 评论 -
QIODevice::readyRead()
void QIODevice::readyRead()This signal is emitted once every time new data is available for reading from the device(每次当新数据可读时,就会发射该信号.看有文章说和写并不一一对应,有可能写一次,需要读多次,也可能写多次,只读一次). It will only be emitted again once new data is available, such as when a new pay翻译 2021-02-02 21:20:05 · 2051 阅读 · 4 评论 -
QXmlStreamReader的用法记录
xml文件示例:<?xml version="1.0" encoding="utf-8"?><column> <header>头部</header></column>QXmlStreamReader类下常用的函数:name():当前元素的名字readNext():读下一个Token(可以认为是标签)isStartElement():判断是否是xml元素的开始位置,比如上述xml中的<column>isEndElem原创 2021-01-27 18:25:55 · 594 阅读 · 0 评论 -
《左耳听风》-ARTS-打卡记录-第十八周
《左耳听风》-ARTS-打卡记录-第十八周Algorithm合并两个排序的链表// Definition for singly-linked list.struct ListNode{ int val; ListNode *next; ListNode() : val(0), next(nullptr) {} ListNode(int x) : val(x), next(nullptr) {} ListNode(int x, ListNode *next) : val(x), next原创 2021-01-17 18:54:32 · 128 阅读 · 0 评论 -
如何在QTest测试中同时运行多个类的测试用例
你可以这样做:class TestClassA : public QObject{ Q_OBJECTpublic: TestClassA(); ...private Q_SLOTS: void testCase1(); ...};class TestClassB : public QObject{ Q_OBJECTpublic: TestClassB(); ...private Q_SLOTS: void testCase2(原创 2021-01-14 21:31:30 · 909 阅读 · 2 评论 -
为什么在Qt的源文件中需要包含.moc文件
QuestionWhy is it important to add an include for .moc file in a Qt cpp source code?This is a common step used in several Qt samples, including this one: http://doc.qt.io/qt-5/qttestlib-tutorial1-example.html; where the line #include "testqstring.moc" sh转载 2021-01-14 21:28:32 · 1368 阅读 · 0 评论 -
Qt中复制文件夹中所有内容
//复制一个文件中的全部内容到另一个文件夹中void CopyFiles(QString strSour, QString strDest){ if(true == strSour.endsWith('/')) { strSour.chop(1); } if(true == strDest.endsWith('/')) { strDest.chop(1); } QDir dirDest(strDest); .原创 2021-01-08 19:26:02 · 1472 阅读 · 0 评论 -
qt中代理delegate
当前自己的认知:代理只是把当前编辑前后的信息给临时存储下来;如果违反条件能够恢复到编辑前的值.原创 2021-01-08 18:41:36 · 931 阅读 · 0 评论 -
20210108关于数据库事务的讨论
Stephen:群友们,请教一个问题: 数据库事务中,如果批量插入数据,是否有一条错误,就应该提前跳出循环,提示事务失败进行回滚操作呢? 还是可以忽略这条错误,继续提交事务?风华神使:应该回滚既然是事务,就绝不能提交一部分jeff:一般场景下,批量提交时候,捕获到错误,就全部回滚正常的批量插入时候不是循环插入的,每个字段都是一个数组。除非你是自己循环一条一条插入。杨赛:不要 事务中套循环Stephen:现在遇到同事写的是事务里用的循环Stephen:还需要引入一个bool量,判断每原创 2021-01-08 18:36:56 · 65 阅读 · 0 评论 -
qt易错点总结
1.当单元格为空时(而非是被赋值为“”),其item调用text()会报错,因为此时的item()为空指针。2.ui->tableWidget->setCurrentItem(ui->tableWidget->item(1,1))表示将(1,1)位置处的单元格作为当前所选的,能够成功的前提是item(1,1)不是null.3.Qt正则表达式防止转义,需要在原来基础上再加一个\.比如"\d"在正则表达式中是真实存在的,在C++字符串中就需要加上"\",保证系统处理后仍保留"\d"原创 2020-12-31 10:42:44 · 1022 阅读 · 1 评论 -
关于Qt的测试框架
在Qt的官方手册中看到了4种Qt测试框架:Qt Testframework,Google C++ Testing Framework,Boost.Test, andCatch2 test framework.(https://doc.qt.io/qtcreator/creator-autotest.html)在Qt Creator的"帮助"->"插件"中找到了Auto Test,把它选中后,重启软件.打卡一个项目,它的左侧导航Tests选项下只有"Auto Tests","Qt Quic...原创 2020-12-30 21:55:06 · 490 阅读 · 0 评论 -
在Qt中使用boost库
参考文章:在Qt中使用boost库踩坑历程:我的Qt版本是5.6.3的.一开始下载的boost版本太高了,为1_75_0,发现"build.bat gcc"这一步都过不了.后来下载和博主一样的版本的boost,编译报"error: ‘for’ loop initial declarations are only allowed in c99"的错误,后来愣是把for里面的i的声明提到了for循环前面,才编译通过...原创 2020-12-30 21:45:17 · 427 阅读 · 0 评论 -
Qt中判断sqlite数据库表是否含有某列
在网上查到在sqlite数据库中,判断某列在表中是否存在的语句,如下.如果该列存在,则返回1;否则返回空.select 1 from PRAGMA_TABLE_INFO('table_name') WHERE name='column_name'这个在sqlite中直接运行是可以的,但在qt中运行就会报如下的错误:near \"(\": syntax error Unable to execute statement一开始以为是括号的问题,后来意识到是qt中不能够识别"PRAGMA_.原创 2020-12-26 22:29:24 · 2347 阅读 · 0 评论 -
QSqlDatabase::removeDatabase的用法
void QSqlDatabase::removeDatabase(const QString &connectionName)Removes the database connection connectionName from the list of database connections.Warning: There should be no open queries on the database connection when this function is called, oth原创 2020-12-26 22:08:44 · 634 阅读 · 2 评论 -
Qt坐标相关的函数
int QMouseEvent::globalX() const Returns the global position of the mouse cursor aQPoint QWidget::pos();//这个属性获得的是当前目前控件在父窗口中的位置QPoint QMouseEvent::pos();//返回相对这个widget的位置QPoint QMouseEvent::globalPos();//窗口坐标,这个是返回鼠标的全局坐标const QPointF& QMouseEve..原创 2020-11-03 18:07:46 · 345 阅读 · 1 评论 -
Qt数据库使用总结(待进一步优化:remove和close怎么用,何时用)
数据库的使用流程连接-> 操作 -> 关闭类名称 功能 QSqlDatabase 表示和数据库连接的类 QSqlDriver 访问特定SQL数据库的抽象基类 QSqlQuery 提供执行和操作SQL语句的工具 大概创建过程://连接数据库QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE", "demo");//QSQLITE指定类型,"demo"是数据库名...原创 2020-10-28 20:29:16 · 1813 阅读 · 0 评论 -
qt中事务的示例
代码来源:https://forum.qt.io/topic/109778/qsqldatabase-sqlite-transaction-inside-of-qsqlquery-how/3auto db = QSqlDatabase::database("my connection name");if(db.transaction()){ QSqlQuery query(db); // do stuff 做一些事务,比如下面的这条 query.execute("INS.转载 2020-10-21 19:21:47 · 342 阅读 · 0 评论 -
QTest相关问题总结
https://stackoverflow.com/questions/12604739/how-can-you-edit-a-qtableview-cell-from-a-qtest-unit-test// Retrieve X/Y coordinates of the cell in the third column and the fourth rowint xPos = m_pTableView->columnViewportPosition( 2 );int yPos = m_p.原创 2020-10-19 20:54:51 · 251 阅读 · 0 评论