
Qt学习总结
文章平均质量分 54
Qt学习过程中的点滴
无尽V深海
这个作者很懒,什么都没留下…
展开
-
【Qt之QQuickWidget】QML嵌入QWidget中
对qwidget嵌入qml的操作,qt提供了两种方式,(1) QQuickView 和 QWidget::createWindowContainer ()结合使用,但存在堆栈限制问题被放弃;由于我项目开始使用Widgets,换公司后直接使用QML开发,没有了解过如何实现widget到qml过渡,恰逢面试时遇到一家公司希望从widget迁移到qml开发,询问相关实现,一时语塞,很尴尬,粗略研究并总结下。对于网上反应的某些信号获取不到,测试后没发现问题,不知道是不是版本问题,我测试版本为Qt5.12.12。原创 2025-02-24 00:57:50 · 569 阅读 · 0 评论 -
Qt之QDjango-db的简单使用
QDjango是一款由C++编写、依托于Qt库的Web开发框架,其设计理念受到了广受欢迎的Python框架Django的影响。这个项目旨在提供一个高效、灵活且易于使用的工具集,帮助开发者构建高质量的Web应用。其项目地址:https://gitcode.com/gh_mirrors/qd/qdjango,项目结构中存在db和http两部分,db为Qt的ORM实现,该模块包装一下可以作为简单的ORM库使用。如果项目中不想SQL语句写的到处都是,一个简单ORM库还是有必要的,同时也能避免依赖某一种数据库。原创 2025-01-19 19:59:24 · 463 阅读 · 0 评论 -
Qt之TinyXML2
Qt没有引入QtXml模块以前,采用第三方库解析Xml数据是不得已的选择,其中Tinyxml2在c++的xml解析库中是个不错的选择。先前项目使用Tinyxml作为底层XML解析库,升级为TinyXML2后文件减少成2个,接口也发生很多变化。原创 2024-01-22 23:15:43 · 303 阅读 · 0 评论 -
Qt之QxOrm
QxORM库是一种为了C++/Qt开发者服务的关系对象映射型数据库的类库,每个类都有简单的C++设置函数,你可以接触到如下特性:持久性:支持最常见的数据库,如 SQLite、MySQL、PostgreSQL、Oracle、MS SQL Server、MongoDB(具有 1-1、1-n、n-1 和 n-n 关系)。序列化:JSON、二进制和 XML 格式。反射(或内省):动态访问类定义、检索属性和调用类方法。原创 2024-01-16 21:58:00 · 1783 阅读 · 0 评论 -
Qt之AVI录屏
/******** CScreenShot.h **************/#ifndef __CSCREENSHOT_H#define __CSCREENSHOT_H#include <QRunnable>#include <QPixmap>#include <QMutex>#include <QWaitCondition>#include <QThread>#define CollectGarbage(className)原创 2022-01-22 21:23:01 · 1444 阅读 · 1 评论 -
Qt之程序崩溃原因定位手段
由于Qt主要作为跨平台的界面库存在,在Linux环境下定位问题较Windows下难,主要记录Linux环境下Qt程序崩溃原因定位的方法。Core文件生成backtracebreakpadcrashpad原创 2022-01-22 20:50:56 · 4970 阅读 · 0 评论 -
Qt之Sqlite insert 方法对比
在台式机上测试Sqlite不同插入方案对比发现:select-stmt是插入速度最快的方式,事务虽然也能加快插入数据,相较于STMT还是慢了不少。#include <QCoreApplication>#include <QSqlQuery>#include <QSqlDatabase>#include <QSqlDriver>#include <QSqlError>#include <QDateTime>#includ原创 2021-05-09 19:43:08 · 1002 阅读 · 0 评论 -
Qt之事件处理
Qt提供5种级别事件处理与事件过滤方法1. 重新实现特殊的事件处理器以QLabel为例,QLabel类中可以重写的虚函数有如下11个函数。如果期望的事件在如下10个中,就可以继承QLabel重写如下的函数。virtual void changeEvent(QEvent *ev) overridevirtual void contextMenuEvent(QContextMenuEvent *ev) overridevirtual void focusInEvent(QFocusEvent *原创 2021-04-18 21:05:05 · 304 阅读 · 0 评论 -
Qt之Q_PROPERTY
Qt样式表分离中需要使用到Q_PROPERTY宏,在代码现在的版本中,使用样式表主要还是使用setStyleSheet(),但是考虑到后续样式表分离,使用QSS就不得不提及Q_PROPERTY了。Qt Style Sheets Examples:https://doc.qt.io/archives/qt-4.8/stylesheet-examples.htmlQ_PROPERTY:http...原创 2020-04-12 16:11:34 · 601 阅读 · 0 评论 -
Qt之QSignalMapper
资料来源:https://doc.qt.io/archives/qt-4.8/qsignalmapper.htmlhttps://blog.youkuaiyun.com/mcgrady_tracy/article/details/6996947在源码中存在大量的信号转发代码,也存在极少量信号转发器代码。从上述问题来看项目源码所出现问题单最终绝大部分可以归结于信号-槽问题。在QT编程中,如果遇到多个控件,...原创 2020-04-12 14:14:41 · 231 阅读 · 0 评论 -
Qt之自建标题栏
在项目中遇到QDialog在双击标题栏时对话框会最大化的情况,由于设置MaxmiumSize等都没有效果的情况下所以自建标题栏。// TitileBar.h#ifndef __TITLEBAR_H_#define __TITLEBAR_H_#include <QDialog>class QEvent;class QMouseEvent;class QPixmap;c...原创 2020-04-12 10:26:14 · 706 阅读 · 0 评论 -
Qt之内存数据库
内存数据库,顾名思义就是将数据放在内存中直接操作的数据库。相对于磁盘,内存的数据读写速度要高出几个数量级,将数据保存在内存中相比从磁盘上访问能够极大地提高应用的性能。所以在有大量数据交互时使用内存数据库,等到数据交互量降下来以后同步至本地数据库也是个不错的选择。 下段代码是我事先将部分数据插入内存数据库,便于后续数据交互时查表使用。/** @brief 将自检信息表存入内存数据库...原创 2019-11-18 19:47:27 · 3160 阅读 · 2 评论 -
Qt之QDialog
QDialog特性: 对话框是一个顶级窗口,大多数用于临时任务和短暂交流。QDialog可能是modal或者modeless;QDialog还可以提供一个返回值;QDialog可以提供default buttons;最后QDialog用setSizeGripEnabled()还是可以在低层次中心提供一个QSizeGrip类; QDialog或者其他有Qt::Dialog类型的widge...原创 2019-10-26 23:27:03 · 1211 阅读 · 0 评论 -
Qt之QObject
1.梗概 QObjects会自我构建对象树,当你创建一个以另一个对象作为父对象的QObject对象时,它被加到父对象的children()列表中,同时当父对象被删除时其也被删除,这被证明是非常适应GUI的应用需求。例如,QShortcut是一个相关窗口的子对象,当用户关闭窗口时,shortcut也会被删除。2.QObject构造/析构的次序 当QObjects在堆上创建出来,对象树...翻译 2020-04-12 17:13:15 · 317 阅读 · 0 评论 -
Qt之Map嵌套对象指针的删除(其他容器也适用)
Method 1:使用qDeleteAll h: QMap<int,QString>* MapValueForWarn; QMap<int,QMap<int,QString>*>* MapCatchForWarn; QVector<QMap<int,QMap<int,QString>*>*>* VecCa...原创 2019-08-19 19:50:01 · 1963 阅读 · 0 评论 -
Qt之Sqlite3 Insert优化
最近在项目遇到一个问题,就是插入大量数据时启动程序会特别卡,一开始我使用线程缓解了一点,但是仍然会卡很久,今天在复习Sqlite相关内容时,突然发现了一个与我很相似的情况。究其主要原因还是执行INSERT语句时还有很大问题。在Sqlite官网关于INSERT的方式中INSERT过程中最后如果使用VALUES那条路会比select-stmt和DEFAULT -VALUES多走很多路,可能这样就导...原创 2019-07-31 19:43:30 · 977 阅读 · 0 评论 -
Qt之PaintEvent
从Qt官方给的例程可以看出,如果想将绘图加入事件循环共有两种方式:绘图事件和定时器事件两种方式,通常使用前者。(一) painterEvent在绘图事件中,如果想使用update()刷新页面是行不通的,除非使用新的定时器定时刷新页面。painterEvent来自QWidget的virtual protected function,其他一些控件例如QLabel、QLineEdit、QMenu...原创 2019-07-30 18:50:46 · 8721 阅读 · 1 评论 -
Qt之正则表达式一二三
/*** RegExpTest.h*/#include <QDialog>#include <QValidator>class QLabel;class QLineEdit;class QRegExp;class QRegExpValidator;class QVBoxLayout;class QString;class Parser : p...原创 2020-04-12 13:29:36 · 405 阅读 · 0 评论