2014-11-16 12 views
9

Czy istnieje prosty widżet wskaźnika ładowania, pokazujący niektóre prace w toku, przypominające obracające się kropki w kółko? Coś takiego:Widżet wskaźnika ładowania Qt

loader

+0

Ktoś opracował taki widget tutaj: https://github.com/mojocorp/QProgressIndicator Jest to widget malujący dokładnie to, czego potrzebujesz. Proszę zauważyć, że animacja jest tworzona przez kod, nie jest animowanym gifem. To ma zalety, że możesz zmienić rozmiar widgetu, jak wolisz, bez luźnej definicji. – Suppaman

+0

https://github.com/snowwlex/QtWaitingSpinner działa, po ponownym otwarciu pytania, mogę udzielić pełnej odpowiedzi na temat jego użycia. – phyatt

Odpowiedz

25

Nie, nie ma takiego widget, ale jest inny bardzo prosty sposób, aby to zrobić. Możesz to zrobić za pomocą animacji gif. Na przykład:

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

Można uzyskać GIF animacji z here lub użyć innej gif.

Uważam, że jest to najprostszy sposób, ponieważ można stworzyć tę animację w aplikacji z timerem, zmianą kolorów i tak dalej, ale wymaga to dużo pracy i czasu. Ale QMovie to potężna i łatwa w użyciu klasa.

+1

Pamiętaj, aby zniszczyć film. Od [doc] (http://doc.qt.io/qt-5/qlabel.html#setMovie): "Etykieta NIE przejmuje własności filmu." – n3mo

+0

Kudos za niezwykle przydatne łącze. –