Vielen Dank im Voraus für das Lesen und Hilfe.Qt - Anzeige von animierten GIF von QListWidget auf MainWindow
Ich versuche, einen GIF-Manager basierend auf einem QListWidget zu machen, wo Sie ein GIF aus der Liste auswählen können (mit _ * _ itemClicked, wie Sie unten sehen können) und es wird das animierte GIF in dem Raum unter dem erscheinen Liste (oder seitwärts, spielt keine Rolle).
void MainWindow::on_listOfURL_itemClicked(QListWidgetItem *item)
{
QLabel* lab = new QLabel(this);
QMovie* mov = new QMovie(":/res/giftest/C:/Users/Rober/Desktop/giftest.gif");
lab->setGeometry(200, 200, 200, 200);
lab->setMovie(mov);
lab->show();
mov->start();
}
Ich habe versucht, über das Stück Code, aber es zeigt nichts. Es ist nur ein vergeblicher Versuch, es zum Laufen zu bringen, deshalb ist der GIF-Pfad der gleiche, Sie brauchen sich nicht darum zu sorgen.
Ehrlich gesagt, ich habe eine Menge Code in Foren und dieser Website in Bezug auf GIFS und Animationen gesucht, und nichts von dem, was ich gesehen habe, hat für mich funktioniert.
Wie soll ich fortfahren? Ich denke, ich sollte einige Grafiken QWidget in der Benutzeroberfläche verwenden und es mit der Funktion auf _ * _ itemClicked verknüpfen, so dass es den Speicherort des Bilds von der QListWidgetItem übernimmt und zeigt, wo ich in der Benutzeroberfläche zeigte.
Ich habe den Code bekommen hier eingefügt durch die Mighty Google surfen, und es bringt mir einige Zweifel:
- ich eine QLabel mit dem Hauptfenster als Elternteil. Okay, aber wo wird es erscheinen?
- Kann ich nicht im Designer ein Widget erstellen, das ich definieren kann, wo wird es sein und nur die GIF arbeiten?
Ich denke, ich habe mich richtig erklärt, wenn nicht nur lassen Sie mich wissen.
EDIT: Ich denke, was ich brauche, ist ein QLabel, das innerhalb des MainWindow, unterhalb der URL-Liste ist. Wie gestalte ich das QLabel in QtDesigner und nehme dann dasselbe QLabel in Code und manipuliere es mit dem GIF?
ich eingeschlossen haben, was Sie sagen, auch die isValid(). Sieht so aus, als wäre das GIF gültig, aber es wird nicht angezeigt. –