gtk.main()执行时与gtk.container交互?

时间:2011-05-20 13:31:23

标签: python gtk pygtk

使用 pygtk egg.trayicon在Python中尝试使用电池监视器图标创建一个图标以显示电池图标/工具提示。

我似乎能够添加图标和工具提示文本,但当它到达gtk.main()阶段时,我需要一种方法来修改它们,以便它可以显示更新的值。

我已经尝试gobject.idle_add()gobject.timeout_add()没有太多运气,不知道从哪里开始。

有人有任何想法吗?

编辑:也许不是最清楚的问题。

我需要循环,在运行时从acpi获取信息并将其应用于gtk容器内的小部件。

编辑2 :好的,现在它正常了。问题是我在回调中没有返回任何内容。我刚给它“返回123”,现在它很高兴地在我的系统托盘中匆匆忙忙地通知我我的电池百分比:)

1 个答案:

答案 0 :(得分:3)

此示例适用于我:

# -*- 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()

如果没有看到你的代码,就很难分辨出什么不起作用。