Рисовать с помощью QPainter
Мне нужно рисовать с QPainter
, но когда я пытаюсь сделать это не в
void paintEvent( QPaintEvent* )
Я ловлю ошибку:
QPainter:: setPen: Painter не активен
QPainter::setBrush: Painter не активен
Могу ли я использовать QPainter
не в пустоте paintEvent( QPaintEvent* )
?
Спасибо.
1 ответ
Вы используете виджет в качестве устройства рисования для QPainter
, В этом случае, QPainter
обычно может использоваться только в контексте события рисования виджета. QPainter
Документация может сказать об этом следующее:
Предупреждение: когда paintdevice является виджетом, QPainter может использоваться только внутри функции paintEvent() или в функции, вызываемой paintEvent(); это если только не установлен атрибут виджета Qt::WA_PaintOutsidePaintEvent. В Mac OS X и Windows вы можете рисовать только в функции paintEvent() независимо от настройки этого атрибута.
Можно использовать QPainter
вне события рисования, установив другое устройство рисования для QPainter
например QPixmap
,