
Qt
文章平均质量分 84
飞羚
爱好编程,以技术为乐的程序猿一枚!
展开
-
事件循环详解
事件循环postevent和sendevent事件过滤源码剖析int QCoreApplication::exec()int QEventLoop::exec(ProcessEventsFlags flags)bool QEventLoop::processEvents(ProcessEventsFlags flags)bool QEventDispatcherWin32::processEvents(QEventLoop::ProcessEventsFlags flags)void QEventDisp.原创 2021-03-31 13:46:49 · 1965 阅读 · 0 评论 -
q、d指针详解
d、q指针的初始化d、q指针的使用d、q指针的优势d、q指针的初始化 以Qt中最常用的控件qlabe类的源码为例,研究Qt中Q_D指针的使用。 顾名思义,private代表私有的,QLabelPrivate也正如它的命名一样,其主要用于保存QLabel的私有成员以及函数。源码如下所示:class Q_AUTOTEST_EXPORT QLabelPrivate : public QFramePrivate{public: QLabelPrivate(); ~QLabelPr.原创 2021-03-24 18:03:47 · 2623 阅读 · 0 评论 -
QThread使用
QThread使用的两种方式moveToThreadsubclass QThreadQthread同步优雅的取消线程QThread使用的两种方式 Qt提供了两种线程的使用方式,分别如下:moveToThread class Worker : public QObject { Q_OBJECT public slots: void doWork(const QString ¶meter) { QString result; .原创 2020-12-11 18:26:51 · 782 阅读 · 0 评论 -
Qt之信号槽机制详解
基本介绍基本使用注意事项基本介绍 毫无疑问,Qt的信号槽机制是Qt框架的核心机制之一,从本质上来讲,其实际是观察者模式。当某个事件发生后,继承于QObject的某个对象就会发出一个信号,如果有对象对此信号感兴趣,就可以连接(connect)过来,实现自己的槽函数,一旦信号发出,那么槽函数将会根据连接方式选择时机回调。基本使用 Qt中的信号槽机制是依赖于The Meta-Object System 实现的,根据Qt的assistant中所述,其基于三点实现:QObject为类提供了可以使用.原创 2020-12-11 15:01:16 · 1002 阅读 · 0 评论 -
Qt中信号槽的连接方式
Qt::AutoConnection 如果信号发送者和接收者在同一线程,Qt::DirectConnection被使用,否则Qt::QueuedConnection被使用;Qt::DirectConnection 信号发送,信号槽立刻执行。Qt::QueuedConnection 事件循环返回接收者线程时,信号槽才会执行;Qt::BlockingQueuedConnection 和Qt::QueuedConnection基本相同,不同在于:它是阻塞的,即发出信号之后,线程将一直阻塞直到原创 2020-12-11 12:02:34 · 390 阅读 · 0 评论 -
QDoubleValidator完善版
使用过QDoubleValidator的同学都知道,QDoubleValidator在Qt中实现并不完善,导致使用时存在bug,但是幸好,Qt提供了validate的虚函数,让我们可以重写它,以下是我实现的一个QDoubleValidator版本,暂时没有发现什么问题。//***********************QDoubleValidator.h*************************//#ifndef QTVEDITORDOUBLEVALIDATOR_H#define QTVE原创 2020-12-09 14:25:21 · 2193 阅读 · 0 评论