Domanda

Sto usando un QPainter per ottenere alcuni elementi grafici su una finestra. Sfortunatamente ogni volta che viene chiamata la funzione paintEvent () , l'intera finestra viene cancellata. Come posso disegnare senza cancellare? Cioè come posso lasciare intatte le cose del precedente evento paint?

Sto usando Qt4

È stato utile?

Soluzione

Devi impostare backgroundMode utilizzando il setBackgroundMode . L'enum Qt :: NoBackground è ciò che stai cercando.

Altri suggerimenti

Poiché entrambe le risposte sono solo per Qt3, ecco la soluzione per Qt4. Devi chiamare

setAttribute(Qt::WA_OpaquePaintEvent);

(ad esempio nel costruttore) seguendo la documentazione qui .

In Qt3, imposta il flag Qt :: WNoAutoErase dal WidgetFlags enum per evitare che la finestra venga cancellata su ogni evento di disegno.

Puoi impostare questo flag passandolo al costruttore QWidget .

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top