LINUX.ORG.RU

История изменений

Исправление AntonI, (текущая версия) :

Снова я;-)

А как сделать перерисовку canvas-а через QPainter (который должен быть в paintEvent) не по каждому чиху а только тогда когда это действительно нужно? Сейчас Canvas наследник QWidget и просто размещен на окне через setGeometry. Когда я запускаюсь у меня перерисовка происходит дважды. Кроме того на окне слева управляющие элементы, когда я над ними мышкой вожу перерисовка дергается случайным образом, хотя я их не нажимаю и они даже никуда не прикручены.

У меня есть два вида перерисовок:

  1. тяжелая, с построением картинок и пр. - должна вызываться когда окно изменило размер или когда был нажат какой то из управляющих элементов

  2. легкая, просто крестик от мыши сдвигается и меняется несколько чиселок, остальное остается неизменным - когда курсор мыши двигается над canvas-ом.

Если это все в одном paintEvent, то придется видимо сделать флаг активирующий тяжелую перерисовку? Но я не очень понимаю, как при легкой перерисовке оставлять на экране то, что нарисовано было в тяжелой?

Исходная версия AntonI, :

Снова я;-)

А как сделать перерисовку canvas-а через QPainter (который должен быть в paintEvent) не по каждому чиху а только тогда когда это действительно нужно? Сейчас Canvas наследник QWidget и просто размещен на окне через setGeometry. Когда я запускаюсь у меня перерисовка происходит дважды. Кроме того на окне слева управляющие элементы, когда я над ними мышкой вожу перерисовка дергается случайным образом, хотя я их не нажимаю и они даже никуда не прикручены.

У меня есть два вида перерисовок:

  1. тяжелая, с построением картинок и пр. - должна вызываться когда окно изменило размер или когда был нажат какой то из управляющих элементов

  2. легкая, просто крестик от мыши сдвигается и меняется несколько чиселок, остальное остается неизменным - когда курсор мыши двигается над canvas-ом.

Если это все в одном paintEvent, то придется видимо сделать флаг активирующий тяжелую перерисовку? Но я не очень понимаю, как при легкой перерисовке сохранять то что нарисовано было в тяжелой?