QPushButton
może mieć ikonę, ale muszę ustawić na nią animowaną ikonę. Jak to zrobić? Stworzyłem nową klasę zaimplementowaną z QPushButton
, ale jak zastąpić ikonę od QIcon
do QMovie
?Jak ustawić animowaną ikonę na QPushButton w Qt5?
13
A
Odpowiedz
21
Można tego dokonać bez podklasy QPushButton
, po prostu używając mechanizmu sygnału/szczeliny Qt. Połącz sygnał frameChanged
z QMovie
z niestandardowym gniazdem w klasie, który zawiera ten QPushButton
. Ta funkcja zastosuje bieżącą ramkę QMovie
jako ikonę QPushButton
. Powinno to wyglądać mniej więcej tak:
// member function that catches the frameChanged signal of the QMovie
void MyWidget::setButtonIcon(int frame)
{
myPushButton->setIcon(QIcon(myMovie->currentPixmap()));
}
A przy przydzielaniu swoich członków QMovie
i QPushButton
...
myPushButton = new QPushButton();
myMovie = new QMovie("someAnimation.gif");
connect(myMovie,SIGNAL(frameChanged(int)),this,SLOT(setButtonIcon(int)));
// if movie doesn't loop forever, force it to.
if (myMovie->loopCount() != -1)
connect(myMovie,SIGNAL(finished()),myMovie,SLOT(start()));
myMovie->start();
Powiązane problemy
- 1. Jak zrobić animowaną animowaną tapetę na Androida?
- 2. Jak dodać animowaną ikonę do paska stanu OS X?
- 3. Jak wyświetlić animowaną ikonę podczas przetwarzania żądania Ajax - Rails 3
- 4. Jak ustawić ikonę aplikacji jako ikonę powiadomienia w szufladzie powiadomień
- 5. Jak ustawić ikonę dla ListViewSubItem?
- 6. Jak zmienić ikonę QPushButton za pomocą arkuszy stylów w aplikacji Qt
- 7. Jak ustawić ikonę aplikacji w golangu?
- 8. FloatingActionButton z animowaną ikoną
- 9. Jak ustawić "ikonę skrótu" w szynach?
- 10. Jak ustawić ikonę TitleBar w UWP?
- 11. Jak ustawić ikonę aplikacji w projekcie opartym na Qt?
- 12. Jak ustawić ikonę do aplikacji adobe air
- 13. Qt5: Jak czekać na sygnał w wątku?
- 14. Gdzie ustawić ikonę aplikacji w aplikacji na iPhone'a
- 15. Jak poprawnie ustawić ikonę dużego widgetu w Androidzie
- 16. Przeciąganie/przenoszenie QPushButton w PyQt
- 17. Jak ustawić ikonę w MenuItem ContextMenu podczas używania ItemContainerStyle
- 18. Jak wdrożyć wtyczkę qt5 qml na Androida?
- 19. Wykrywanie wejścia na QLineEdit lub QPushButton
- 20. Menu kontekstowe prawego przycisku myszy na QPushButton
- 21. Zmniejsz szerokość QPushButton do minimum
- 22. Jak ustawić ikonę dla mojej aplikacji w visual studio 2008?
- 23. Jak ustawić ikonę działania paska narzędzi w React Native?
- 24. Jak ustawić ikonę Instalatora pakietu Windows zamiast domyślnego w WiX
- 25. Obsługa Retina w Qt5 na OS X
- 26. Qt rightclick QPushButton
- 27. Jak uczynić moją UibezierPath animowaną z CAShapeLayer?
- 28. Nie można ustawić ikonę menu używając ItemContainerStyle
- 29. Android: jak ustawić ikonę krzyżyka nad tekstem autouzupełnianiaView
- 30. QT QPushButton z ikoną i warstwą wyśrodkowanego tekstu
Dziękuję bardzo. Czy obraz animacji może mieć przezroczyste tło? – Robotex
Powinieneś być w stanie, o ile wiem. Format GIF pozwala na przezroczystość (poprzez określenie koloru na obrazku, który powinien być przezroczysty), a Qt pozwala na rysowanie przezroczystych map QPix przez widżety. Jedyne, czego nie jestem pewien, to to, czy QMovie obsługuje przezroczystość. Ponieważ klasy Qt są zwykle bardzo dokładne, zaskoczyłoby mnie, gdyby QMovie nie wspierało przejrzystości, ale nie wspomina o tym w dokumentacji. –
Potrzebuję dwóch animowanych ikon i zmieniam je w zależności od sytuacji (gdy idle - jeden, podczas pracy - inny). Jak mogę to zrobić elegancko? – Robotex