我有一个目录,其中有几张图片和 gif 动画。我想在 QDialog 上无限循环地发布图片和动画(通过在 2 分钟间隔内循环更改图片),并且在这些图片和动画上我想设置一个链接,以便当您单击浏览器时打开设置的链接。
我怎么能做到这一点?
请考虑我知道如何获取目录中的所有 .jpg 和 .gif 文件名(完整路径)。考虑有一个 QStringList fileNameList;其中包含完整的路径。
您可以为此使用 2 个 QLabel。第一个将用于 jpg 等静态图像,第二个用于动画。在第一个中,您可以使用 setPixmap 设置图像,在第二个中,您需要创建一个 QMovie 对象,在构造函数中为其提供 gif 文件。创建对象后,您可以使用 setMovie() 函数将影片分配给标签。
在您调用 QMovie 对象中的 start() 之前,电影不会开始。
有了这个,你就有了动画和静态图像。由于您希望每 2 秒更改一次,我建议将所有文件名存储在 QList 中,然后使用 QTimer 读取下一个文件名并将其加载到其中一个标签中(用于静态图像的标签或其他标签)和隐藏不可见的那个。
要打开链接,您可以继承 QLabel 类并覆盖 mousePressEvent 方法。在方法内部,您可以调用 QDesktopServices::openExternalLink(link)。您可以将链接添加为子类的成员。
祝你好运!
您可以使用QLabel::setPixmap在标签中显示图像。