李水云 2025-10-17 13:21 采纳率: 37.5%
浏览 5
已结题

QT怎么关闭自动重绘实现手动重绘

在QWidget中设置setUpdatesEnabled(false);关闭自动重绘
在需要时手动重绘时先设置setUpdatesEnabled(true);然后update();
但是没有update()完成的槽函数,导致无法及时setUpdatesEnabled(false);关闭自动重绘

有没有更好的办法实现,完全由自己控制重绘控件
控件是直接调用QWidget生成,不是通过paintEvent绘制

  • 写回答

4条回答 默认 最新

  • 阿里嘎多学长 2025-10-17 13:21
    关注

    阿里嘎多学长整理AIGC生成,因移动端显示问题导致当前答案未能完全显示,请使用PC端查看更加详细的解答过程

    你好,根据你的问题,我给出以下解决方案:

    在QT中,自动重绘是默认行为,为了实现手动重绘,可以通过以下方法关闭自动重绘:

    // 关闭自动重绘
    setUpdatesEnabled(false);
    
    // 手动重绘
    update();
    

    或者使用repaint()函数:

    // 手动重绘
    repaint();
    

    需要注意的是,关闭自动重绘可能会影响UI的响应性,应根据具体需求选择合适的方法。

    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 10月17日
  • 修改了问题 10月17日
  • 创建了问题 10月17日