Qt
文章平均质量分 71
wjjontheway
这个作者很懒,什么都没留下…
展开
-
Qt Visual Studio添加Qt ui和编译注意事项
VS工程中添加Qt Widget Class过程注意事项原创 2022-12-14 10:40:58 · 3653 阅读 · 1 评论 -
Qt Visual Studio生成moc文件
Visual Studio 转换moc文件原创 2022-11-29 09:54:26 · 1831 阅读 · 0 评论 -
Qt 工程添加windows库文件
向Qt工程中添加windows库文件原创 2022-11-28 14:54:32 · 1278 阅读 · 0 评论 -
Qt KeyPressEvent和组合按键
QWidget接收键盘处理事件时必须设置Focus Policy原创 2022-11-01 15:52:18 · 1025 阅读 · 0 评论 -
内联函数在头文件内定义
inline内联函数在头文件内定义,否则会出错原创 2022-10-31 17:34:42 · 748 阅读 · 0 评论 -
QMainWindow布局
QMainWindow 布局原创 2022-10-24 13:34:07 · 840 阅读 · 0 评论 -
pureMVC 之 系统框架
文章目录传统的MVC 框架PureMVC框架PureMVC 框图传统的MVC 框架PureMVC框架简单的pureMVC模型PureMVC 框图原创 2022-02-12 14:08:12 · 412 阅读 · 0 评论 -
pureMVC 之 系列文章之简介
文章目录引言系列内容设计模式C++ 接口类和抽象类Qt系列文章内容大纲引言写GUI 的 同学一般都会知道大名鼎鼎的MVC框架(Model, View, Control),但是不知道有没有听过pureMVC? 咋一看,“纯”MVC, 难道还有不纯的?其实pureMVC 是 Futurescale 公司创建并维护的开源自由的程序框架。其官方网址可见,该框架有好多语言版本。系列内容设计模式在了解pureMVC之前,可能需要储备一些设计模式的知识,涉及的涉及模式有:单例模式门面模式代理模式原创 2022-02-12 14:00:12 · 353 阅读 · 0 评论 -
Qt 之 基于事件总线的MVC模型
文章目录基于事件总线的MVC模型简介模型模块FrontControllerFrontController内的线程AbstractCommandGitlEventParam继承AbstractCommand的实际CommandGitlViewMainWindowGitlIvkCmdEvtGitlUpdateUIEvt数据流基于事件总线的MVC模型(基于Qt的MVC开源框架)[https://github.com/lheric/libgitlmvc]简介与传统的MVC有区别,V和M不是直接关联的采原创 2022-01-21 17:11:33 · 1084 阅读 · 0 评论 -
Qt 之 事件总线模型
文章目录Qt 之 开源事件总线模块libgitlevtbus模型模块EventEventBusModuleModuleDelegateTestCaseQt 之 开源事件总线模块libgitlevtbus用到了libgitlevtbus(libgitlevtbus)[https://github.com/lheric/libgitlevtbus]介绍libgitlevtbus 是一个基于Qt的开源的事件总线(消息总线 ) , BSD lisence.特征1. Easy to use (c原创 2022-01-20 19:05:33 · 1968 阅读 · 4 评论 -
Qt 之 信号参数为QSharedPointer 智能指针类型
文章目录智能指针作为信号参数QSharedPointer智能指针作为信号参数/*! connect a module to the event bus*/Q_DECLARE_METATYPE( QSharedPointer<GitlEvent> )bool GitlEventBus::registerModule(GitlModuleDelegate* pcModule){ qRegisterMetaType< QSharedPointer<GitlEve原创 2022-01-18 15:03:29 · 3377 阅读 · 0 评论 -
Qt 之 CMake编译错误
文章目录错误修改编译qt-mvvm出错错误CMake Error at cmake/modules/configuration.cmake:51 (find_package): By not providing "FindQt5.cmake" in CMAKE_MODULE_PATH this project has asked CMake to find a package configuration file provided by "Qt5", but CMake did not f原创 2021-12-24 16:27:32 · 5718 阅读 · 0 评论 -
C++ 之 观察者模式
文章目录SubjectObserverConcrete_SubjectObserverPersonmainSubjectsubject.h#ifndef SUBJECT_H#define SUBJECT_Hclass Observer;class Subject{public: Subject(); virtual ~Subject(); virtual void registObserver(Observer *ob) = 0; virtual voi原创 2021-12-22 01:53:25 · 354 阅读 · 0 评论 -
Qt 之 信号和槽的原理
对象之间的通信机制直接调用回调函数+映射表观察者模式定义对象间的一对多的关系,每当一个对象的状态发生改变时,其对该状态进行观察(感兴趣)的对象皆收到通知。欠债人(发布消息)和收债人(订阅消息)图片地址欠债人为“有钱了”消息的发布者收债人为“有钱了”消息的订阅者(观察者)张三欠了王五,赵四钱, 当张三有钱了,便发布“有钱了”消息,王五和赵四就会收到通知。从而就可以来要账了。Debit 是一个发布者的基类Credit是一个观察者的基类...原创 2021-12-20 10:12:04 · 256 阅读 · 0 评论 -
Qt 之 Eventloop 事件循环
文章目录需求QEventLoopDemo1- 登录Demo2- 延时Demo3- 在程序中等待服务器返回理解QT事件循环事件循环抽象Qt是事件驱动的Qt常见事件Qt事件从哪里来Qt事件队列Qt事件接收Qt事件循环Qt事件同步和异步分发需求登录时,等待服务器返回,才能知道下一步结果希望某线程等待100ms,但不会影响UI刷新在程序里等待服务器返回QEventLoopAt any time, you can create a QEventLoop object and call exec()原创 2021-12-19 00:37:26 · 6614 阅读 · 0 评论 -
QWebEngine 之 C++与Js通信
文章目录QWebEngine 之 C++与Js通信Qt 嵌入式网页技术QWebChannel简介js 与 C++ 互相调用js 向C++传递参数从C++端传递参数到js端使用信号传递数据C++直接调用Js方法QWebEngine 之 C++与Js通信Qt 嵌入式网页技术在传统的Widget中嵌入支持H5 和 js 技术的控件对于client中的JS本质来说,Qt WebEngine主要是提供了一个JS的宿主环境- Chromuim项目下的v8引擎。另外在Qt提供的web渲染引擎是Chromuim原创 2021-12-14 15:48:10 · 4421 阅读 · 2 评论 -
Qt 之 QWebEngine SimpleBrowser
文章目录SimpleBrowser类型结构SimpleBrowser官方的Simple Browser例子打开存储的页面,和管理窗口和tabs的菜单栏输入URL的导航栏,前进,后退,历史用于在选项卡内显示 Web 内容的多选项卡区域用于显示悬停链接的状态栏一个简单的下载管理器The web content can be opened in new tabs or separate windows. HTTP and proxy authentication can be used原创 2021-12-12 18:05:30 · 1695 阅读 · 0 评论 -
Qt 之QWebEngineVie框架简介及加载网页方法
文章目录H5 页面切换加速及调优需求WebEngine热启动WebEngineView单例实现基于Widget承载WebEngine从主界面进入某个业务通过QWebEnginePage加载网页两种形式的加载接口加载网页过程中的三个信号加载网页结束后的操作H5 页面切换加速及调优编撰人日期吴俊杰2021.12.10需求打开业务网页速度要求高打开业务不显示上一次打开业务内容WebEngine热启动在初始化时,如果未通过webEngine加载一个空白页,当第一次点击业务原创 2021-12-11 16:16:47 · 7112 阅读 · 0 评论 -
Qt 之 QChildEvent::child方法
QChildEventChild events are sent immediately to objects when children are added or removed.Demo1: childEvent开发者ID:KDE,项目名称:tupi,代码行数:29,代码来源:tvhbox.cppvoid KoVBox::childEvent(QChildEvent *event){ switch (event->type()) { case QEvent::Ch原创 2021-12-09 22:41:10 · 723 阅读 · 0 评论 -
Qt 之QWebEngineView 触摸屏联动
QWebEngine 在嵌入式触摸屏下的应用原创 2021-12-09 20:49:43 · 977 阅读 · 0 评论 -
Qt 之 QWebEngine 过滤QEvent::ChildAdded
QEvent::ChildAdded需求在QWebEngineView加载网页后,模拟一个点击,直接创建一个QMouseEvent,通过QApplication::SendEvent或者QApplication::PostEvent发给QWebEngineView, 发现QWebEngineView中没有执行QWebEngineView::mousePressEvent和QWebEngineView::mouseReleaseEvent,QWebEngineView的鼠标事件的处理Qt窗口组件进行事原创 2021-12-09 14:13:37 · 1050 阅读 · 0 评论 -
Qt 之 qDebug() 自定义log
需求GUI log分登记GUI log记入文件GUI log每个文件大小限制在1MGUI log共10个文件,回滚覆盖写入GUI log最新的日志总是计入xxx.0.log, 依次xxx.1.log, xxx.2.log, 依次类推Qt 调试信息qDebug() //调试消息qInfo() //信息消息qWarning() //警告消息qCritical() //错误消息qFatal() //致命错误消息默认环境下输出的调试信息int main(int原创 2021-12-03 22:03:19 · 883 阅读 · 0 评论 -
Qt 之单例模式
单例模式场景只需要一个对象的场景,比如系统日志,设备,读写配置。 比如GUI log, 一个班只有一个班主任,只能创建一个对象,并提供访问它的唯一全局访问点, 避免频繁的创建与销毁自己创建自己唯一的实例创建方式singleton.h#ifndef SINGLETON#define SINGLETONclass Singleton {public: QString getInstanceName() const; static Singleton& getInstance原创 2021-12-03 10:54:51 · 2396 阅读 · 2 评论 -
Qt 之 QPainter
画笔,绘图,绘图设备层次结构层次类说明1QPainter画笔2QPainterEngine翻译QPainter的指令3QPaintDevice画板Qt 的绘图系统实际上是,使用QPainter在QPainterDevice上进行绘制,它们之间使用QPaintEngine进行通讯(也就是翻译QPainter的指令)。...原创 2021-12-01 21:18:38 · 2182 阅读 · 0 评论 -
Qt 之 new对象何时销毁
疑惑在类的构造函数中,使用new创建了一个button, 当关闭这个窗口时, new出来的内存会释放吗?MyWindow::MyWindow(QWidget *parent, const char *name,WFlags f) : QMainWindow(parent,name,f | WDestructiveClose){ QPushButton *button = new QPushButton("hello",this);}对象树机制QT的父子原创 2021-12-01 21:06:41 · 2339 阅读 · 1 评论 -
Qt 之 Painter
QPainter“用完后记得销毁”Simple Codevoid SimpleExampleWidget::paintEvent(QPaintEvent *) { QPainter painter(this); painter.setPen(Qt::blue); painter.setFont(QFont("Arial", 30)); painter.drawText(rect(), Qt::AlignCenter, "Qt"); //painte原创 2021-12-01 16:18:33 · 1061 阅读 · 0 评论 -
Qt 之 QWebChannel实现C++与Js交互
官方例程example: Qt/Example/Qt-5.15.2/webchannel/standalone/standalone.procore.h该类是和HMTL交互的核心#define CORE_H#include "dialog.h"#include <QObject>/* An instance of this class gets published over the WebChannel and is then accessible to HTML cl原创 2021-06-12 12:48:53 · 1755 阅读 · 0 评论 -
Qt 之 容器类 - 连续容器
连续容器类连续容器类连续容器QVectorQLinkedListQListQStringListQStack和 QQueue连续容器迭代器只读迭代器(Java 风格)向前和向后遍历读-写迭代器(Java风格)STL风格迭代器返回容器连续容器类连续容器QVector相同类型, 内存连续存储固定大小QVector vector(3)使用[ ]操作符为的项赋值QVector<double> vect(3); vect[0] = 1.0;vect[1] = 0.5原创 2021-03-07 18:08:56 · 234 阅读 · 0 评论 -
Qt 之 隐含共享
隐含共享implict sharing隐含共享背景写时复制Good Performance习惯一习惯二隐含共享的工作原理隐含共享背景在遍历Java迭代器时,并不需要向STL迭代器那样,在STL迭代器的容器副本上进行遍历。写时复制通过隐含共享,使得赋值Qt容器的速度大致就像复制一个简单指针一样快。只有在复制项数据发生改变时,数据才会实际被赋值。 也被称为“写时复制”。QVector<double> sineTable(){ QVector<double> vect(36原创 2021-03-07 18:07:40 · 135 阅读 · 0 评论 -
Qt 之多线程同步
多线程同步多线程同步互斥QMutex mutexQMutexLocker locker同步QReadWriteLock rwLockQReadLocker rwLockerQWriteLocker rwLocker同QMutexLocker对QMutex的作用一样,使用QReadLocker和QWriteLocker对QReadWriteLock进行锁定和解锁信号量QSemphoreQWaitCondition与主线程通信通过信号和槽,connect的第5个参数同步在底层,实际是通过置入一个事件来实现这些连原创 2021-03-07 16:01:11 · 756 阅读 · 0 评论 -
Qt 之 多线程
QT多线程场景内容Qt 4.7之前线程使用方法DemoQt 4.7之后线程使用方法事件驱动特性MyWidgetMyThreadDemo两种方法对比4.7 之前4.7 之后线程的信号和槽连接方式自动连接(Qt::AutoConnection)直接连接(Qt::DirectionConnection)队列连接(Qt::QueueConnection)多线程使用注意事项使用线程绘图场景如果用户从界面中调用一个比较耗时的操作,那么当执行这个操作时,虽然实际上该操作正在进行,但用户界面中调用一个比较耗时的操作。原创 2021-03-06 23:10:57 · 230 阅读 · 0 评论 -
Qt 之 QDataStream 和 QTextStream
文件系统文件系统分类顺序访问设备:从头走到尾,从第一个字节开始访问,直到最后一个字节,中途不能返回去读取上一个字节随机访问设备:可以访问任意位置任意次数,还可以使用QIODevice::seek()函数来重新定位文件访问位置指针QFileQFile提供了从文件中读取和写入数据的能力。我们通常会将文件路径作为参数传给QFile的构造函数。不过也可以在创建好对象最后,使用setFileName()来修改。 QString path = QFileDialog::getOpenF原创 2021-03-06 23:10:26 · 932 阅读 · 0 评论 -
Qt 之 文件操作
QFileQt不会读写文件等于没学文件打开的方式enum OpenModeFlag { NotOpen = 0x0000, ReadOnly = 0x0001, //只读 WriteOnly = 0x0002, //只写 ReadWrite = ReadOnly | WriteOnly, //可读可写 Append = 0x0004, //文件指针移动到文件尾 Truncate = 0x0008, //原创 2021-03-05 23:18:56 · 497 阅读 · 0 评论 -
Qt 之 QTimer和timerEvent
QTimer执行多次//.h文件--声明QTimer对象和槽函数public : void timerFun();private: QTimer* demoTimer; //.cpp文件--实例化和连接信号槽demoTimer= new QTimer();connect(demoTimer, &QTimer::timeout, this, &MyWidget::timerFun)); //信号和槽demoTimer->setInterval(10000); /原创 2021-03-04 16:22:21 · 476 阅读 · 0 评论 -
Qt 之 Event
这里写目录标题事件事件开始事件对象QEvent事件的转发QWidget自定义事件处理函数鼠标追踪事件的接收和过滤accept()和ignore()accept()ignore()isAccepted()QCloseEvent关闭窗口事件event()Demo:检测Tab键重写event( )陷阱event( )控制器源码事件过滤器事件过滤场景eventFilter 函数调用机制安装和移除事件过滤器不应该应该event无法处理的情况事件过滤器的有点总结事件事件开始exec()函数。在启动该函数之后,程原创 2021-03-04 14:50:51 · 787 阅读 · 0 评论 -
Qt 之 对话框
对话框类#include <QDialog> //对话框类模态对话框阻塞式对话框。必须操作当前对话框后才可以进入后面的操作。#include "mainwindow.h"#include <QMenu>#include <QMenuBar>#include <QAction>#include <QDialog> //对话框类#include <QDebug>MainWindow::MainWi原创 2021-03-03 20:47:55 · 89 阅读 · 0 评论 -
Qt 之 父窗口
窗口指定父对象#include <QApplication>#include <QWidget> //窗口控件基类#include <QPushButton>int main(int argc, char **argv){ QApplication app(argc, argv); QWidget w; w.setWindowTitle(QString("主要看气质")); //设置标题 /*如果不指定父对象,对象和对象(窗原创 2021-03-01 16:43:15 · 237 阅读 · 0 评论 -
Qt 之 MyWidget
HelloQt#include "mywidget.h"//QApplication应用程序类//Qt头文件没有.h//头文件和类名一样#include <QApplication>int main(int argc, char *argv[]){ //有且只有一个应用程序类的对象 QApplication a(argc, argv); //MyWidget继承与QWidget, QWidget是一个窗口基类 //所以MyWidget也是窗口类原创 2021-03-01 16:36:31 · 923 阅读 · 0 评论 -
Qt 之 信号和槽
信号和槽解释当某个控件或某个事件发生时,系统中“关心”该信号的模块,执行一个Action,来响应该Signal。机制类似于设计模式:观察者模式。 信号发出类似于广播,通过广播的方式传递出去。 遍历“链”上的内容,如果对此信号感兴趣,就响应该消息。简单示例(Qt5 语法)#include <QApplication>#include <QPushButton>int main(int argc, char *argv[]){ QApplication app原创 2021-02-27 19:03:05 · 378 阅读 · 0 评论