2013-07-17 2 views

ответ

14

Когда вы вызываете updateGL() на свой виджет (или update()), или просто Qt решает перерисовать ваш виджет. Причины, по которым Qt может выбрать, чтобы попросить перерисовки включают:

  • виджет получает изменен
  • виджет скрыт и показан снова
  • виджет минимизируется, а затем восстановлен
  • что-то еще положить в передняя часть вашего виджета, а затем отошел
  • Луна в третьем квартале
  • отдаленная бабочка была взмахнула крыльями
  • ...

Короче говоря, у вас есть очень мало контроля о когда Qt просит перекрашивать. Просто не забудьте быстро покрасить! :-)

+0

Дополнительная информация: 'paintGL()' даже не называется «мгновенно», когда вы вызываете 'updateGL()'. Вместо этого Qt ждет и называет его позже, когда это необходимо, так что последовательные вызовы 'updateGL()' приводят только к одному вызову 'paintGL()'. – Boris

+0

Спасибо! Я не знал о функциях update() и updateGL(). Это все из опыта? –

+0

Вы имеете в виду, если это полный список того, когда Qt запрашивает переименование, помимо пользовательских (например, вызов 'update()')? – peppe

Смежные вопросы