我有一个父窗口小部件P是一个图形场景窗口小部件,它绘制了一个大尺寸的图片(QImage),因此它的绘图功能很难被调用。
现在我想添加一个小小部件C,它自己更新10Hz,我希望它有图形场景小部件作为其父级。
C确实出现在P小部件的左上角,如预期的那样。 但是我发现C的10Hz更新也触发了P的10Hz更新并且使用了很多CPU。
我怎么能阻止这个? C不需要任何透明。
答案 0 :(得分:0)
不幸的是,您不能阻止频率为10Hz的子更新以10Hz的频率触发父更新。你可以做的是使渲染尽可能高效。
因此你必须使用pixmaps来绘制P.每次在paint事件中绘制QImage时,你都会受到使用QImage的惩罚。你的痛苦应该是
void QWidget::paintEvent(QPaintEvent * event)
{
if(somethingHasChanged())
updatePixmap();
drawSavedPixmap();
}
即使您有一个已保存的QImage,这仍然有效。