在 Python 中封装 GObject
2007-03-29 12:14:54 来源:WEB开发网核心提示: t.add(gtk.Label("Hello"))TrayIcon 元素是 GTK+ 容器,所以您可以将任何东西添加到其中,在 Python 中封装 GObject(8),这里,我添加一个标签窗口小部件,幸运的是,在使用 gnome-python 代码生成器时,t.sh
t.add(gtk.Label("Hello"))
TrayIcon 元素是 GTK+ 容器,所以您可以将任何东西添加到其中。这里,我添加一个标签窗口小部件。
t.show_all()
gtk.main()
这里,我将窗口小部件设置为可视的,然后启动 GTK+ 主事件循环。
现在,如果您还未这样做,则将 Notification Area applet 添加到 GNOME 面板(在该面板上单击鼠标右键,然后选择“Add to Panel”-> Utility -> Notification Area)。运行该测试程序应该会在栏中显示“Hello”。很酷,不是吗?
图 1. Hello 示例
通知区还允许我们做什么?好,程序可以告诉通知区显示消息。该消息的实际显示方式是特定于实现的;目前,GNOME 通知区显示工具提示。我们可以通过调用 send_message() 函数发送消息。快速查看 API 可以得知它希望有超时和消息,所以它应该如下工作:
...
t = trayicon.TrayIcon("test")
...
t.send_message(1000, "My First Message")
但并不是那样。C 原型是 send_message(int timeout, char* message, int length) ,所以 Python API 还需要字符指针和长度。这确实起作用:
...
t = trayicon.TrayIcon("test")
...
message = "My First Message"
t.send_message(1000, message, len(message))
然而,这有点儿难看。这就是 Python;编程应该简单。如果我们坚持沿着这条路线,那么将以 C 告终,但是没有分号。幸运的是,在使用 gnome-python 代码生成器时,可以手工封装各个方法。
更多精彩
赞助商链接