pygtk 系统托盘图标不起作用
我正在尝试在我的程序中显示系统托盘图标。 当我启动程序时,它显示窗口,当我关闭窗口时,它会隐藏。 然后,如果我单击系统托盘图标,它会显示一个空白窗口,但不显示窗口的内容。为什么会发生这种情况? 这是我的代码:
class Main(gtk.Window):
def __init__(self):
super(Main,self).__init__()
self.set_title("Virtual Machine Monitor")
self.set_position(gtk.WIN_POS_CENTER)
self.set_default_size(640,600)
self.set_geometry_hints(min_width=640,min_height=600)
self.set_icon_from_file("../images/activity_monitor2.png")
self.connect("destroy",self.window_destroy)
menubar = self.add_menubar()
pixbuf = gdk.pixbuf_new_from_file_at_size("../images/activity_monitor2.png",25,25)
statusicon = gtk.StatusIcon()
statusicon = gtk.status_icon_new_from_pixbuf(pixbuf)
statusicon.connect("activate",self.tray_activate)
self.show_all()
def tray_activate(self,widget):
self.show_all()
def window_destroy(self,widget):
self.hide_all()
if __name__ == "__main__":
Main()
gtk.main()
当我单击系统托盘图标时,它会显示窗口,但是是一个空白窗口。
所以请帮帮我。 提前致谢。
i am trying to display system tray icon in my program.
when i start my program it shows window and when i colse window it gets hidden.
Then if i click on system tray icon it shows me a blank window, but not the contents of window.Why is this happen?
Heres the my code:
class Main(gtk.Window):
def __init__(self):
super(Main,self).__init__()
self.set_title("Virtual Machine Monitor")
self.set_position(gtk.WIN_POS_CENTER)
self.set_default_size(640,600)
self.set_geometry_hints(min_width=640,min_height=600)
self.set_icon_from_file("../images/activity_monitor2.png")
self.connect("destroy",self.window_destroy)
menubar = self.add_menubar()
pixbuf = gdk.pixbuf_new_from_file_at_size("../images/activity_monitor2.png",25,25)
statusicon = gtk.StatusIcon()
statusicon = gtk.status_icon_new_from_pixbuf(pixbuf)
statusicon.connect("activate",self.tray_activate)
self.show_all()
def tray_activate(self,widget):
self.show_all()
def window_destroy(self,widget):
self.hide_all()
if __name__ == "__main__":
Main()
gtk.main()
when i click on system tray icon it shows me window , but a blank window.
So please help me out.
Thanks in advanced.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您必须处理
delete-event
才能隐藏窗口而不破坏它(默认情况下)。You must handle
delete-event
to just hide the window and don't destroy that (as by default).我在你的窗口上没有看到任何控件,我猜你只是从代码片段中删除了这段代码。看看下面的代码是否适合您。每次单击托盘图标时,它都会打开一个窗口。还为托盘注册了一个弹出菜单。
I don't see any controls on your window, I guess you just cut out this code from your snippet. See if the code below would work for you. It should open a window every time you click on the tray icon. Also a popup menu gets registered for the tray.