c++ - 可变Qt Canvas 的最佳方式

标签 c++ qt

在 Qt 中创建变化频率高的“ Canvas ”的最有效方法是什么?

目前我有一个主应用程序窗口 (QWidget),我在其中创建了一个 QPixmap 并将其设置为 QLabel:

QPixmap *canvas = new QPixmap(500, 500);
QLabel *area = new QLabel(this);
area->setPixmap(canvas);

问题是我必须在每次对像素图进行更改后调用 area->setPixmap(canvas); 才能显示它(我计算通常会有几个每秒变化)。这样可以吗?或者是否有更好/更快/更高效的解决方案?

最佳答案

PeterT 和 Jeremy 都有很好的解决方案。哪一个最好取决于您的需求。

如果您四处移动项目并更改它们,请使用 QGraphicsScene 来存储您想要显示的数据并轻松地对其进行操作。使用 QGraphicsView 显示结果。

如果您已经在别处将渲染作为 QPixmap 进行,并且只想绘制结果,子类化 QWidget 并在 paintEvent 中绘制它> 使用 QPainter 可能更简单。不过记得调用 update()!

关于c++ - 可变Qt Canvas 的最佳方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38270459/

相关文章:

c++ - Linux 中的菜单是如何工作的?

c++ - 在 C++ 中创建循环(仍在学习中)

c++ - 删除列表中的旧值并添加新值

python - 我可以在 Xcode 中使用 Python 开发 Qt GUI 吗??

c++ - sfml 2 和 cmake 构建

c++ - 定期调用的 c++ 函数

c++ - 命名空间编译问题

android - 使用 Qt 在 Android 中创建应用程序范围菜单的推荐方法

c++ - 如何正确添加字符串到QListWidgets?

qt - 将带参数的信号从 qml 传递到 c++