use*_*766 0 python ubuntu user-interface glade
我正在尝试使用Python作为后端创建我的第一个Glade GUI.我在Glade中创建了GUI并将文件保存为.glade.然后我创建了我的Python代码并将其保存在与glade文件相同的目录中.在终端中运行Python文件后,我收到以下消息:
Traceback (most recent call last):
File "glade6.py", line 56, in <module>
main = Buglump()
File "glade6.py", line 20, in __init__
self.builder.add_from_file("glade6.glade")
glib.GError: glade6.glade: required gtk+ version 3.10, current version is 2.24
Run Code Online (Sandbox Code Playgroud)
操作系统:Ubuntu 14.04.1 LTS 64位
并运行的Python文件:从" http://gnipsel.com/glade/index.html " 获取的代码
#!/usr/bin/env python
import sys
try:
import gtk
import gtk.glade
except:
print('GTK not available')
sys.exit(1)
try:
import pygtk
pygtk.require('2.0')
except:
pass
class Buglump:
def __init__(self):
self.builder = gtk.Builder()
self.builder.add_from_file("glade6.glade")
self.builder.connect_signals(self)
# the liststore
self.liststore = gtk.ListStore(int,str)
self.liststore.append([0,"Select an Item:"])
self.liststore.append([1,"Row 1"])
self.liststore.append([2,"Row 2"])
self.liststore.append([3,"Row 3"])
self.liststore.append([4,"Row 4"])
self.liststore.append([5,"Row 5"])
# the combobox
self.combobox = self.builder.get_object("combobox1")
self.combobox.set_model(self.liststore)
self.cell = gtk.CellRendererText()
self.combobox.pack_start(self.cell, True)
self.combobox.add_attribute(self.cell, 'text', 1)
self.combobox.set_active(0)
self.window = self.builder.get_object("window1")
self.window1.show()
def on_combobox1_changed(self, widget, data=None):
self.index = widget.get_active()
self.model = widget.get_model()
self.item = self.model[self.index][1]
print "ComboBox Active Text is", self.item
print "ComboBox Active Index is", self.index
self.builder.get_object("label1").set_text(self.item)
def on_window1_destroy(self, object, data=None):
print "quit with cancel"
gtk.main_quit()
if __name__ == "__main__":
main = Buglump()
gtk.main()
Run Code Online (Sandbox Code Playgroud)
小智 5
import gtk实际进口gtk+2.x.如果你需要使用gtk+3,假设你已经安装了它,你需要写:
From gi.repository import Gtk (with capital letter G)
Run Code Online (Sandbox Code Playgroud)
删除这些行:
import gtk
import gtk.glade
Run Code Online (Sandbox Code Playgroud)
并记得将gtk代码中的所有实例更改为Gtk.示例:更改gtk.main_quit()为Gtk.main_quit()
| 归档时间: |
|
| 查看次数: |
2579 次 |
| 最近记录: |