2014-11-16 12 views
9

C'è qualche semplice widget indicatore di caricamento, per mostrare alcuni lavori in corso, qualcosa come un punto rotante in un cerchio o così? Qualcosa di simile a questo:Qt indicatore di caricamento widget

loader

+0

Qualcuno ha sviluppato questo widget qui: https://github.com/mojocorp/QProgressIndicator Questo è un widget che dipinge esattamente ciò di cui hai bisogno. Si noti che l'animazione è creata dal codice, non è una gif animata. Questo ha il vantaggio di poter ridimensionare il widget come preferisci senza una definizione definitiva. – Suppaman

+0

https://github.com/snowwlex/QtWaitingSpinner funziona, una volta riaperta la domanda, posso inserire una risposta completa sul suo utilizzo. – phyatt

risposta

25

No, non c'è nessuna tale widget di, ma c'è un altro modo molto semplice per farlo. Puoi giocare alle animazioni gif per farlo. Per esempio:

QLabel *lbl = new QLabel; 
QMovie *movie = new QMovie("G:/loader.gif"); 
lbl->setMovie(movie); 
lbl->show(); 
movie->start(); 

È possibile ottenere l'animazione delle gif da here o utilizzare un altro gif.

Penso che sia il modo più semplice perché è possibile creare questa animazione in app con timer, cambio colore e così via, ma richiede molto lavoro e tempo. Ma QMovie è una classe potente e facile da usare.

+1

ricorda di distruggere il film. Da [doc] (http://doc.qt.io/qt-5/qlabel.html#setMovie): "L'etichetta NON assume la proprietà del film". – n3mo

+0

Complimenti per il collegamento estremamente utile. –