[英]Interacting with a gtk.container while gtk.main() is executing?
使用pygtk和egg.trayicon
在Python中尝试使用电池监视器图标创建一个图标以显示电池图标/工具提示。
我似乎能够添加图标和工具提示文本,但当它到达gtk.main()
阶段时,我需要一种方法来修改它们,以便它可以显示更新的值。
我已经尝试了gobject.idle_add()
和gobject.timeout_add()
没有太多运气,不知道从哪里开始。
有人有任何想法吗?
编辑 :也许不是最清楚的问题。
我需要循环,在运行时从acpi获取信息并将其应用于gtk容器内的小部件。
编辑2 :好的,它现在正常。 问题是我在回调中没有返回任何内容。 我只是给它“返回123”,现在它很高兴地在我的系统托盘中匆匆走开,通知我我的电池百分比:)
这个例子对我有用:
# -*- Mode: Python -*-
# vi:si:et:sw=4:sts=4:ts=4
import gobject
import gtk
from egg import trayicon
label = gtk.Label("Over here")
def callback(widget, ev):
label.set_text("You found me")
def timeout():
label.set_text("What are you waiting for?")
tray = trayicon.TrayIcon("TrayIcon")
box = gtk.EventBox()
box.add(label)
tray.add(box)
tray.show_all()
box.connect("button-press-event", callback)
gobject.timeout_add(3000L, timeout)
gtk.main()
没有看到你的代码,很难说什么不起作用。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.