当前位置: 代码迷 >> QT开发 >> 相干painteven的疑问
  详细解决方案

相干painteven的疑问

热度:43   发布时间:2016-04-25 03:24:15.0
有关painteven的疑问
看到别人些的代码,运行painteven是要靠鼠标点击窗口或者改变窗口尺寸的时候才能激活断电,而我自己写的是每桢都会激活,我看了下,不是焦点的问题,感觉是设置了强制刷新的原因,因为在mousepressevev里面该代码用到了update函数(顺便说下,窗口时qtglwiindow,也就是用的是qt 的opengl库的部分),但我按着他那样写依然实现布料他那样的效果,还是每桢都会进到paintevent里,

所以 请问哪里可以指控一个面板的painteven函数,在我需要的时候刷新,而不需要的时候就只保留当前窗口的内容,类似,我可以控制后备缓存的翻转到前台的效果


------解决方案--------------------
void QWidget::repaint() [slot]
Repaints the widget directly by calling paintEvent() immediately, unless updates are disabled or the widget is hidden.

We suggest only using repaint() if you need an immediate repaint, for example during animation. In almost all circumstances update() is better, as it permits Qt to optimize for speed and minimize flicker.

Warning: If you call repaint() in a function which may itself be called from paintEvent(), you may get infinite recursion. The update() function never causes recursion.

See also update(), paintEvent(), and setUpdatesEnabled().
  相关解决方案