Рисовать с помощью QPainter - PullRequest
       4

Рисовать с помощью QPainter

0 голосов
/ 26 октября 2010

Мне нужно нарисовать с QPainter, но когда я пытаюсь сделать это не в

void paintEvent( QPaintEvent* )

Я ловлю ошибку:

QPainter :: setPen: Painter не активен

QPainter :: setBrush: Painter не активен

Могу ли я использовать QPainter не в пустоте paintEvent( QPaintEvent* )?

Спасибо.

1 Ответ

3 голосов
/ 26 октября 2010

Вы используете виджет в качестве устройства рисования для QPainter.В этом случае QPainter обычно можно использовать только в контексте события рисования виджета.В документации QPainter есть следующее:

Предупреждение: Когда устройство рисования является виджетом, QPainter можно использовать только внутрифункция paintEvent () или функция, вызываемая paintEvent ();это если только не установлен атрибут виджета Qt :: WA_PaintOutsidePaintEvent.В Mac OS X и Windows вы можете рисовать только в функции paintEvent () независимо от установки этого атрибута.

Можно использовать QPainter вне события рисования, установив другое устройство рисования дляQPainter, например QPixmap.

...