Pergunta

Eu estou usando um QPainter para obter alguns gráficos em uma janela. Infelizmente cada vez que a função paintEvent() é chamado, toda a janela é limpa. Como posso desenhar sem compensação? Ou seja, como faço para deixar o material do evento pintura anterior intocado?

Eu estou usando Qt4

Foi útil?

Solução

Você precisa definir o backgroundMode usando a setBackgroundMode setter. A enumeração Qt::NoBackground é o que você está procurando.

Outras dicas

Uma vez que ambas as respostas são para Qt3 somente, aqui está a solução para Qt4. Você precisa chamar

setAttribute(Qt::WA_OpaquePaintEvent);

(por exemplo, no construtor) seguindo a documentação aqui .

Em Qt3, defina o sinalizador Qt::WNoAutoErase do WidgetFlags enum para evitar que a janela é limpa em cada evento de pintura.

Você pode definir esse sinalizador, passando-o para o QWidget construtor .

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top