![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Qt高级
Funny-Boy
这个作者很懒,什么都没留下…
展开
-
QWidget 实现原理调查
前言QWidget实际上就是个壳,用来标记脏区域,处理一些事件。1、首先update, repaint 最终都调用QWidgetPrivate::syncBackingStore,2、QWidgetPrivate::syncBackingStore 相关流程,最终调用endPaint进入平台层 , 调入void QFbBackingStore::flush(QWindow *window, const QRegion ®ion, const QPoint &offset)1原创 2022-04-06 11:23:15 · 634 阅读 · 0 评论 -
Qt阴影效果实现原理
#include "mainwindow.h"#include "ui_mainwindow.h"#include <QMovie>#include <QDebug>#include <QPainter>#include <QPaintEngine>#include <private/qpixmapfilter_p.h>QT_BEGIN_NAMESPACEextern Q_WIDGETS_EXPORT void qt_blurIma原创 2021-07-15 10:48:29 · 336 阅读 · 0 评论 -
Qt之 图像(使用QPixmapCache优化程序)
先了解下Qt中提供的四种图像类, QImage, QPixmap, QBitmap and QPicture使用QPixmapCache对图像进行缓存1. 为什么要使用QPixmapCache进行缓存?使用QMap<key, QPixmap*> 不行嘛?QPixmapCache 内部实现了一个QCache, QCache类似 QMap,但是好处就是,(1)对象生命周期交由QCache...原创 2021-05-27 18:47:13 · 1538 阅读 · 0 评论 -
Qt之提高程序维护性(断言)
最简单的Q_ASSERT #include <QtGlobal> int divide(int a, int b) { Q_ASSERT(b != 0); return a / b; }Q_ASSERT 有个缺点,就是定位程序致命错误的,一旦发生,程序就无法运行。意味着程序不能正常运行。对于不是致命错误如何进行快速定位呢?那就自定义断言实现一个#pragma oncenamespace Utils { void writeAssertLo原创 2021-05-13 14:39:50 · 550 阅读 · 0 评论