|
|
|
|
 一个gnome-python的例子,运行不了 - zhllg [ 2005-08-16 13:59 | 1,816 byte(s)]
 Re: 一个gnome-python的例子,运行不了 - passworld [ 2005-08-16 21:16 | 235 byte(s)]
 Re: 一个gnome-python的例子,运行不了 - zhllg [ 2005-08-17 00:26 | 294 byte(s)]
 Re: 一个gnome-python的例子,运行不了 - passworld [ 2005-08-17 14:47 | 359 byte(s)]
|
|
|
|
[Original]
[Print]
[Top]
|
import gtk
import gnome.ui
def destroy_handler(event):
gtk.mainquit()
return 0
def delete_handler(window, event):
return 0
def click_handler(event):
msgbox = gnome.ui.GnomeMessageBox(
"Are you sure you want to quit?",
gnome.ui.MESSAGE_BOX_QUESTION,
gnome.ui.STOCK_BUTTON_YES,
gnome.ui.STOCK_BUTTON_NO)
msgbox.set_modal(1)
msgbox.show()
result = msgbox.run_and_close()
if (result == 0):
gtk.mainquit()
return 0
myapp = gnome.ui.GnomeApp("gnome-example", "Gnome Example Program")
mybutton = gtk.GtkButton("I Want to Quit the GNOME Example program")
myapp.set_contents(mybutton)
mybutton.show()
myapp.show()
myapp.connect("delete_event", delete_handler)
myapp.connect("destroy", destroy_handler)
mybutton.connect("clicked", click_handler)
gtk.mainloop()
错误是:
$ python gnome-example.py
Traceback (most recent call last):
File "gnome-example.py", line 35, in ?
myapp = gnome.ui.GnomeApp("gnome-example", "Gnome Example Program")
AttributeError: 'module' object has no attribute 'GnomeApp'
OS:gentoo
kernel:2.6.11
python 版本2.4.1-r1
pygtk 版本2.6.2
gnome-python 版本2.6.10
|
|
|
----
|
|
[Original]
[Print]
[Top]
|
|
[Original]
[Print]
[Top]
|
pygtk 2.0 以后,大多数的 GtkXxxx, GnomeXxxxx 里的 Gtk, Gnome 部分都去掉了,直接用 Xxxx, 譬如 gnome.ui.GnomeApp 变成了 gnome.ui.App 。你要是用 pygtk1.2 的东西,升级到 pygtk2.0 以后版本要把 Gtk, Gnome 去掉。
|
|
|
----
|
|
[Original]
[Print]
[Top]
|
|
[Original]
[Print]
[Top]
|
多谢指点
现在又出了这个问题
$ python gnome-example.py
GnomeUI-ERROR **: You must call gnome_program_init() before creating a GnomeApp
aborting...
Aborted
应该调用什么呢
pygtk gnome-python的文档哪里有?
|
|
|
----
|
|
[Original]
[Print]
[Top]
|
|
[Original]
[Print]
[Top]
|
它既然说要先调用 gnome_program_init,那你就调用 gnome.program_init() 吧。
python-gnome 跟 python-gtk 一样,基本上是参考他们的 C API 的手册,去掉前面的 Gtk, Gnome,对象放到前面,而不是第一个参数罢了。 pygtk 的手册基本是很是直接复制 C 手册的。真没注意python gnome 的手册哪里有。
help() 和 dir() 也是很有用的手段。
|
|
|
----
|
|
[Original]
[Print]
[Top]
|
|
|