Qt - Как разместить баннер в диалоге? - PullRequest
0 голосов
/ 10 июня 2010

У меня есть директрой, где у меня есть несколько картинок и GIF-анимации. Я хочу разместить эти изображения и анимации на QDialog в бесконечном цикле (циклически меняя изображения с интервалом в 2 минуты), а на этих изображениях и анимациях я хочу установить ссылку, чтобы при нажатии на браузер открывать установленную ссылку

Как я мог это сделать?

Пожалуйста, учтите, что я знаю, как получить все .jpg amd .gif имена файлов (полный путь) в каталоге. Учтите, что есть QStringList fileNameList; который содержит полные пути.

Ответы [ 2 ]

1 голос
/ 11 июня 2010

Вы можете использовать 2 QLabels для этого.Первый будет использоваться для статических изображений, таких как jpg, а второй - для анимации.В первом случае вы можете использовать setPixmap для установки изображения, а во втором вам нужно создать объект QMovie, предоставив ему gif-файл в конструкторе.После создания объекта вы можете назначить фильм метке с помощью функции setMovie ().

Фильм не запускается, пока вы не вызовете start () в объекте QMovie.

Сэто у вас есть анимация и статические изображения.Поскольку вы хотите менять каждые 2 секунды, я бы предложил сохранить все имена файлов в QList, а затем использовать QTimer для чтения следующего имени файла и загрузки его в одну из меток (одну для статических изображений или другую) искрыть тот, который не будет виден.

Чтобы открыть ссылки, вы можете создать подкласс класса QLabel и переопределить метод mousePressEvent.Внутри метода вы можете вызвать QDesktopServices :: openExternalLink (ссылка).Вы можете добавить ссылку в качестве члена вашего подкласса.

Удачи!

0 голосов
/ 10 июня 2010

Вы можете использовать QLabel :: setPixmap , чтобы показать изображение в метке.

...