gpt4 book ai didi

python - 我怎样才能在 PyQt4 中有一个动画系统托盘图标?

转载 作者:行者123 更新时间:2023-11-28 16:32:12 25 4
gpt4 key购买 nike

我正在尝试为 pyqt4 应用程序创建一个动画系统托盘图标,但在 python 中找不到任何示例。这是我能找到的最接近的,但它是用 C++ 编写的,我不知道如何翻译它:Is there a way to have (animated)GIF image as system tray icon with pyqt?

如何使用动画 GIF 或使用一系列静止图像作为帧来实现这一点?

最佳答案

也许是这样的。创建 QMovie 实例以供 AnimatedSystemTrayIcon 使用。连接到电影的 frameChanged 信号并调用 QSystemTrayIcon 上的 setIcon。您需要将 QMovie.currentPixmap 返回的像素图转换为 QIcon 以传递给 setIcon

免责声明,仅在 Linux 上测试。

import sys
from PyQt4 import QtGui

class AnimatedSystemTrayIcon(QtGui.QSystemTrayIcon):

def UpdateIcon(self):
icon = QtGui.QIcon()
icon.addPixmap(self.iconMovie.currentPixmap())
self.setIcon(icon)

def __init__(self, movie, parent=None):
super(AnimatedSystemTrayIcon, self).__init__(parent)
menu = QtGui.QMenu(parent)
exitAction = menu.addAction("Exit")
self.setContextMenu(menu)

self.iconMovie = movie
self.iconMovie.start()

self.iconMovie.frameChanged.connect(self.UpdateIcon)

def main():
app = QtGui.QApplication(sys.argv)

w = QtGui.QWidget()
trayIcon = AnimatedSystemTrayIcon(movie=QtGui.QMovie("cat.gif"), parent=w)

w.resize(250, 150)
w.move(300, 300)
w.setWindowTitle('Anim Systray')
w.show()

trayIcon.show()

sys.exit(app.exec_())

if __name__ == '__main__':
main()

关于python - 我怎样才能在 PyQt4 中有一个动画系统托盘图标?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30836292/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com