заранее спасибо за чтение и помощь.
Я пытаюсь сделать GIF-менеджер на основе QListWidget, где вы можете выбрать GIF из списка (используя _ * _ itemClicked, как вы можете видеть ниже), и он будет отображать анимированный GIF в поле под списком (или сбоку). не имеет значения)
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();
}
Я попытался использовать кусок кода выше, но он ничего не показывает. Это просто бесполезная попытка заставить его работать, поэтому путь GIF такой же, вам не нужно об этом беспокоиться.
Честно говоря, я искал много кода на форумах и на этом самом сайте, касающегося GIFS и анимации, и ни одна из вещей, которые я видел, не сработала для меня.
Как мне поступить? Я полагаю, что я должен использовать некоторый графический QWidget в пользовательском интерфейсе и связать его с функцией на _ * _ itemClicked, чтобы он брал местоположение изображения из QListWidgetItem и отображал, куда я указал в пользовательском интерфейсе.
Я получил код, вставленный здесь, просматривая Mighty Google, и это вызывает у меня некоторые сомнения:
Я думаю, что я правильно объяснил, если не просто, дайте мне знать.
РЕДАКТИРОВАТЬ: Я думаю, что мне нужен QLabel, который находится внутри MainWindow, под списком URL. Как мне сформировать этот QLabel в QtDesigner, а затем взять тот же самый QLabel в коде и манипулировать им с помощью GIF?
Я думаю, вам нужно включить в .pro
QTPLUGIN += qgif
и показать label->show();
Конечно, вы можете добавить вещи в дизайнере. Вы можете добавить собственные виджеты, которые вы создаете, но вам нужно создать специальный проект, который бы сделал «плагин» для Designer и построить его в режиме Release, а затем установить плагин в соответствующую папку плагина.
Для этого вы должны быть уверены, что они добавлены в файл .pro:
CONFIG += plugin
TEMPLATE = lib
QT += widgets uiplugin
Затем вам нужно объявить и реализовать плагин, полученный из QObject AND QDesignerCustomWidgetInterface.
ПРОВЕРИТЬ достоверность: mov->isValid()
Код, основанный на хороших внешних источниках, в конечном итоге становится источником небольших бедствий. Программе либо нужен плагин .dll рядом с ним, либо статический плагин, связанный с ним
Когда вы установили Qt, вы установили приложение под названием QtAssistant. Воспользуйтесь этим. Это большая помощь. а также их форумы и примеры хранения, которые вы получили в каталоге Qt. Qt5 получил пример плагина онлайн: http://doc.qt.io/qt-5/qtwidgets-tutorials-widgets-childwidget-example.html
Хорошо, я нашел ответ. Это было довольно глупо на самом деле:
Я не осознавал, что могу выбрать QLabel, созданный в QtDesigner, используя ui-> label, и манипулировать им.
ui->label->setMovie(selectedGif);
selectedGif->start();
ui->label->show();
Начинающие ошибки …