c++ - Qt - 如何在对话框上张贴横幅?

标签 c++ qt banner

我有一个目录,里面有几张图片和 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/

相关文章:

javascript - jQuery 响应式横幅自动调整图像和内容的大小以适应空间

php - 优化我的随机行获取

c++ - getaddrinfo 不返回 ipv6 详细信息

c++ - MSVC-C2668对重载函数的模棱两可的调用-它是编译器错误吗?

c++ - QT 文本编辑/文本浏览器动态高度

c++ - 滚动到顶部不起作用

android - Qt:没有找到安卓工具包

c++ - 生命游戏 C++,检查邻居

c++ - 用字符分隔数字

html - 防止横幅溢出