我想将系统托盘添加到现有的基于python的项目中:https://github.com/piejanssens/premiumizer
我到底该怎么做?我对python完全陌生,并且是第一次使用它,只是因为我想向现有脚本中添加一点功能。
我要实现的是,在脚本运行时,应该有一个系统任务栏图标,如果双击该图标将打开http://localhost:5000。如果右键单击,应该有一个“退出/退出”选项。
我进行了一些研究,我认为我可以使用这两个脚本https://github.com/moses-palmer/pystray或https://github.com/Infinidat/infi.systray来实现它(我还读到应该使用infi.systray,因为它不依赖于pywin32,因为它使用ctypes库,因为该库是标准Python库的一部分。
因此,我尝试将以下代码进行测试以添加到premiumizer.py文件中:
from infi.systray import SysTrayIcon
def say_hello(systray):
print "Hello, World!"
menu_options = (("Say Hello", None, say_hello),)
systray = SysTrayIcon("icon.ico", "Example tray icon", menu_options)
systray.start()
但是现在控制台将立即关闭。如何检查出了什么问题?错误日志是否保存在某处?
我需要做什么才能使其正常工作?还是像我这样“愚蠢”的人有更简单的方法?
答案 0 :(得分:1)
欢迎来到python的世界!
让我假设您将发布的脚本复制到python文件中,然后仅运行该文件,对吗?如果是这样,那么问题在于一旦执行了脚本,程序就会退出并带有托盘图标。
通过在命令窗口中运行python或(如果已安装ipython的话)启动交互式控制台,然后粘贴代码。您会看到托盘图标出现并停留。关闭控制台后,它便消失了。
(注:上面的代码使用print
的python 2.x版本而不使用()
,并且在python 3.x中使用print("Hello, World!")
会导致错误。)
要执行此操作,您需要将此代码放在premiumizer的设置/初始化部分中的某个位置。在不知道这个项目的情况下,我无法在确切位置获得进一步的帮助。