Hai bisogno di un piccolo aiuto con i corsi di pittura Qt
Domanda
Sto cercando di scrivere un programma di disegno (vernice dove mai viene rilevato un mouse premere / hold), ma sto avendo problemi con il Qt QPainter . Ho letto la documentazione sul loro sito web e sto ancora un po 'perso. Un link ad un tutorial che non è sul loro sito web, sarebbe bello o forse spiegare a me come posso fare questo in Qt. L'unica cosa che sono riuscito a fare è di puntini di vernice su un widget.
Soluzione
Controllare il href="http://doc.trolltech.com/4.5/widgets-scribble.html" rel="noreferrer"> Scribble esempio
reimplementare l'evento del mouse
gestori per attuare il disegno, la
vernice gestore di eventi per aggiornare il
applicazione e l'evento resize
gestore per ottimizzare dell'applicazione
aspetto. Inoltre abbiamo reimplementare
il gestore di eventi vicino a intercettare
gli stretti eventi prima di terminazione
l'applicazione. L'esempio dimostra anche come
utilizzare QPainter per disegnare un'immagine in tempo reale
il tempo, così come ridipingere i widget.
Altri suggerimenti
Utilizza il QtAssistant e selezionare la voce relativa QPainter. Da lì si vedrà collegamenti ai programmi di esempio utilizzando varie funzioni di QPainter, come questo: http://doc.trolltech.com/4.5/painting-basicdrawing.html
QtAssistant dovrebbe essere la vostra risorsa numero uno. E 'abbastanza approfondita. Poi, se questo non aiuta vi consiglio il forum a QtCentre . Questi sono alcuni ragazzi esperti.
Posso solo immaginare che cosa il vostro problema è, ma la mia ipotesi è che si sta eseguendo in l'età antica questione del fatto che il paintEvent viene utilizzato per aggiornare la pagina. Il modo per implementare un programma di disegno sarebbe quello di creare un primo QPixmap o QImage come il buffer di disegno. Poi dipingere su di esso nei vostri metodi di stampa del mouse / move / rilascio. Dopo aver aggiornato il buffer di disegno, tutti aggiornati (e di essere un bravo ragazzo e indicare l'area necessita di un rinnovo). Ciò attiverà una chiamata al metodo di paintEvent, dove è sufficiente blit il rettangolo richiesto (QPaintEvent :: rect ()) allo schermo.