在QWidget中设置setUpdatesEnabled(false);关闭自动重绘
在需要时手动重绘时先设置setUpdatesEnabled(true);然后update();
但是没有update()完成的槽函数,导致无法及时setUpdatesEnabled(false);关闭自动重绘
有没有更好的办法实现,完全由自己控制重绘控件
控件是直接调用QWidget生成,不是通过paintEvent绘制
在QWidget中设置setUpdatesEnabled(false);关闭自动重绘
在需要时手动重绘时先设置setUpdatesEnabled(true);然后update();
但是没有update()完成的槽函数,导致无法及时setUpdatesEnabled(false);关闭自动重绘
有没有更好的办法实现,完全由自己控制重绘控件
控件是直接调用QWidget生成,不是通过paintEvent绘制
阿里嘎多学长整理AIGC生成,因移动端显示问题导致当前答案未能完全显示,请使用PC端查看更加详细的解答过程
你好,根据你的问题,我理解你想在QT中手动控制控件的重绘。
在QWidget中,设置setUpdatesEnabled(false)可以关闭自动重绘,这样可以提高性能。但是,当需要手动重绘时,需要先设置setUpdatesEnabled(true),然后调用update()方法来触发重绘。
但是,你提到没有update()方法,这是因为QT中没有直接的update()方法。相反,你可以使用repaint()方法来触发重绘。
所以,正确的步骤是:
setUpdatesEnabled(false)关闭自动重绘setUpdatesEnabled(true)repaint()方法来触发重绘例如:
// 关闭自动重绘
setUpdatesEnabled(false);
// 需要手动重绘时
setUpdatesEnabled(true);
repaint();
希望这个解答能帮助你解决问题!