我有一个目录,里面有几张图片和 gif 动画。我想无限循环地在 QDialog 上发布这些图片和动画(通过以 2 分钟为间隔循环更改图片),并且我想在这些图片和动画上设置一个链接,以便当您单击浏览器时打开设置的链接。
我该怎么做?
请考虑我知道如何获取目录中的所有 .jpg amd .gif 文件名(完整路径)。考虑有一个 QStringList fileNameList;其中包含完整路径。
最佳答案
您可以为此使用 2 个 QLabel。第一个将用于静态图像,如 jpg,第二个用于动画。在第一个中,您可以使用 setPixmap 设置图像,在第二个中,您需要创建一个 QMovie 对象,在构造函数中为其提供 gif 文件。创建对象后,您可以使用 setMovie() 函数将电影分配给标签。
在您调用 QMovie 对象中的 start() 之前,电影不会开始。
有了这个,你就有了动画和静态图像。既然你想要每 2 秒更改一次,我建议将所有文件名存储在 QList 中,然后使用 QTimer 读取下一个文件名并将其加载到其中一个标签(用于静态图像的标签或另一个标签)中,然后隐藏不可见的那个。
要打开链接,您可以子类化 QLabel 类并覆盖 mousePressEvent 方法。在该方法中,您可以调用 QDesktopServices::openExternalLink(link)。您可以将链接添加为子类的成员。
祝你好运!
关于c++ - Qt - 如何在对话框上张贴横幅?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3016399/