资讯动态

QML与QWidget的流畅度

发布时间:2026/10/22 21:22:52 来源:尧图企业网站定制
简单来说:QWidget 是 CPU 绘图时代的产物,而 QML(Qt Quick) 是 GPU 绘图时代的产物。所以在动画、透明效果、缩放、旋转、大量元素移动等场景下,QML 往往比 QWidget 流畅得多。1. QWidget 是怎么画出来的?先看 QWidget 的工作方式。例如:QPushButton QLabel QTableView QTreeView这些控件都继承自 QWidget。当窗口需要刷新时:paintEvent()会被调用。例如:void MyWidget::paintEvent(QPaintEvent *) { QPainter p(this); p.drawRect(...); p.drawText(...); p.drawPixmap(...); }流程:CPU ↓ QPainter绘图 ↓ 生成像素 ↓ 写入内存缓冲区 ↓ 提交给窗口系统 ↓ 显示器本质上:QWidget = CPU Raster Paint即:CPU负责画每一个像素2. QWidget 为什么动画容易卡?假设一个按钮从:x=0移动到:x=500动画 60FPS。每一帧:清空背景 ↓ 重新画按钮 ↓ 重新画文字 ↓ 重新画边框 ↓ 重新

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑