QT更改每个帧的PixMap
QT Changing pixmap each frame
我刚刚开始在QT工作,我正在尝试更改每个帧的像素颜色的一些像素颜色。
QGraphicsScene *graphic = new QGraphicsScene(this);
QPixmap LifeMap=QPixmap(QPixmap::fromImage(LifeGrid));
这是我的图形场景和我的pixmap声明。
因此,在一个函数中,我调用每个帧我使用此代码线来更新PixMap
graphic->addPixmap(QPixmap::fromImage(LifeGrid));
它可以工作,但是每隔几秒钟我就有越来越少的RAM内存。记忆充满后,我的计算机停止工作,我无能为力。(我想这与AddPixMap函数有关,因为它声明了一个全新的PixMap)
因此,是否有一个功能可以允许我仅更新此图形或更改PixMap?
预先感谢!
是否有一个功能可以使我只能更新此图形或更改PixMap?
是。您必须使用单个PixMap项目,而不是每次更改PixMap时创建新的项目。您也可以按值来保存场景和项目,保存额外的间接层,并利用C 编译器自动为您完成所有内存管理:
class MyClass : ... {
QGraphicsScene m_scene;
QGraphicsPixmapItem m_pixmapItem; // must be after m_scene: in C++ this order matters!
...
}
MyClass::MyClass() {
...
m_scene->addItem(&m_pixmapItem);
}
void MyClass::myMethod() {
m_pixmapItem.setPixmap(QPixmap::fromImage(LifeGrid));
}
相关文章:
- Qt VTK交互风格的信号到小部件
- QT在错误的班级中寻找空位
- 如何在选项卡视图Qt中设置一个新项目,并保存以前的项目
- 如何在Qt窗口小部件中使用QStringView(或QStringRef)
- 如何在Qt C++中更改光标
- 如何在MS Visual Studio 2019中运行QT UI
- QT通过C++添加映射QML项目
- libssh 的函数在构建 libssh 时无法在 Qt 和 cmake 错误中找到
- 如何将点击的信号和插槽添加到qt中的自定义按钮中
- Qt C++静态thread_local QNetworkAccessManager是线程应用程序的好选择吗
- 使用Qt C++计算类似Git的SHA1哈希
- Qt focusObjectChanged example?
- 如何在cpp文件之间切换窗口?在Qt中
- Qt和C++:将QLineEdit添加到QTabWidget中
- 从数据库实时显示QT c++中的数据
- Qt Quick-如何仅从c++代码与qml属性交互
- 在Qt中设置pixmap时的执行时间很奇怪
- QT更改每个帧的PixMap
- Qt Update Pixmap of QGraphicsPixmapItem
- Qt中线程之间共享的Pixmap