【发布时间】:2017-06-26 11:37:08
【问题描述】:
我正在尝试结合 glade 的 python 脚本,创建一个按钮,在 python 中打开一个文件,这样我可以在以后进行一些更改时进行编辑。有谁能帮帮我吗?
我做的是这样的:
import gi
gi.require_version('Gtk', '3.0')
from gi.repository import Gtk
from gi.repository import GObject as gobject
import pygtk
import gtk
def show_script(button):
dialog = gtk.FileChooserDialog("Open...", None, gtk.FILE_CHOOSER_ACTION_OPEN, (gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL, gtk.STOCK_OPEN, gtk.RESPONSE_OK))
dialog.set_default_response(gtk.RESPONSE_OK)
filter = gtk.FilerFilter()
filter.set_name("All files")
filter.add_pattern("*")
dialog.add_filter(filter)
response = dialog.run()
if response == gtk.RESPONSE_OK:
print (dialog.get_filename(), 'selected')
elif response == gtk.RESPONSE_CANCEL:
print ('Closed, you didnt choose any files')
dialog.destroy()
builder = Gtk.Builder()
builder.add_from_file("Wi_Green_Sheddule_v1.glade")
handlers = {
"action_show_script": show_script
}
}
builder.connect_signals(handlers)
window = builder.get_object("window")
window.show_all()
Gtk.main()
当我点击按钮时我的程序出现的错误是:
Traceback (most recent call last):
File "/home/pi/Downloads/showShedduleWiGreen.py", line 70, in show_script
dialog = gtk.FileChooserDialog("Open...", None, gtk.FILE_CHOOSER_ACTION_OPEN, (gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL, gtk.STOCK_OPEN, gtk.RESPONSE_OK))
File "/usr/lib/python3/dist-packages/gi/__init__.py", line 62, in __getattr__
raise AttributeError(_static_binding_error)
AttributeError: When using gi.repository you must not import static modules like "gobject". Please change all occurrences of "import gobject" to "from gi.repository import GObject". See: https://bugzilla.gnome.org/show_bug.cgi?id=709183
【问题讨论】:
标签: python-3.x pygtk glade pygobject