[英]Glade 3 with Python not working
I made a nice interface with Glade 3 for Windows 7 (v3.14.2) It should run with Python for Ubuntu 12.04 我为Windows 7(v3.14.2)的Glade 3制作了一个不错的界面,该界面应与适用于Ubuntu 12.04的Python一起运行
So i made this program: 所以我做了这个程序:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import gtk
import gtk.glade
class HellowWorldGTK:
def __init__(self):
self.gladefile = "userInput.glade"
self.glade = gtk.Builder()
self.glade.add_from_file(self.gladefile)
self.glade.connect_signals(self)
self.glade.get_object("mainWindow").show_all()
def on_MainWindow_delete_event(self, widget, event):
gtk.main_quit()
if __name__ == "__main__":
try:
a = HellowWorldGTK()
gtk.main()
except KeyboardInterrupt:
pass
and, when running in Ubuntu, this is what the console says: 并且,在Ubuntu中运行时,控制台将显示以下内容:
aimc@ubuntu:~/Desktop$ python main_ex.py
main_ex.py:13: GtkWarning: Unknown property: GtkWindow.margin-left
self.glade.add_from_file(self.gladefile)
main_ex.py:13: GtkWarning: Unknown property: GtkWindow.margin-right
self.glade.add_from_file(self.gladefile)
main_ex.py:13: GtkWarning: Unknown property: GtkWindow.margin-top
self.glade.add_from_file(self.gladefile)
main_ex.py:13: GtkWarning: Unknown property: GtkWindow.margin-bottom
self.glade.add_from_file(self.gladefile)
main_ex.py:13: Warning: cannot create instance of abstract (non-instantiatable) type `GtkPaned'
self.glade.add_from_file(self.gladefile)
Segmentation fault (core dumped)
What is wrong with my .glade file? .glade文件怎么了? Should I use other Glade version? 我应该使用其他Glade版本吗? I would really appreciate your help. 我将衷心感谢您的帮助。
Glade File (a fragment of it as stackoverflow won't let me put it all): Glade File(作为stackoverflow的一部分,我无法一一列举):
<?xml version="1.0" encoding="UTF-8"?>
<interface>
<!-- interface-requires gtk+ 3.0 -->
<object class="GtkAction" id="action1"/>
<object class="GtkAction" id="action2"/>
<object class="GtkActionGroup" id="actiongroup1"/>
<object class="GtkImage" id="image1">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="stock">gtk-go-forward</property>
</object>
<object class="GtkListStore" id="liststore1"/>
<object class="GtkWindow" id="mainWindow">
<property name="can_focus">False</property>
<property name="margin_left">3</property>
<property name="margin_right">3</property>
<property name="margin_top">3</property>
<property name="margin_bottom">3</property>
<child>
<object class="GtkPaned" id="paned1">
<property name="visible">True</property>
<property name="can_focus">True</property>
<child>
<object class="GtkPaned" id="paned2">
<property name="visible">True</property>
<property name="can_focus">True</property>
<child>
<object class="GtkBox" id="box1">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="hexpand">True</property>
<property name="resize_mode">immediate</property>
<property name="orientation">vertical</property>
<child>
<placeholder/>
</child>
<child>
<object class="GtkButton" id="btnDrop">
<property name="label" translatable="yes">Drop</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
<signal name="clicked" handler="clicked_drop" swapped="no"/>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
<child>
<placeholder/>
</child>
<child>
<object class="GtkButton" id="btnReward">
<property name="label" translatable="yes">Reward</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
<signal name="clicked" handler="clicked_reward" swapped="no"/>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">3</property>
</packing>
</child>
<child>
<placeholder/>
</child>
<child>
<object class="GtkButton" id="btnOpen">
<property name="label" translatable="yes">Open Valve</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">5</property>
</packing>
</child>
<child>
<placeholder/>
</child>
<child>
<object class="GtkButton" id="btnClose">
<property name="label" translatable="yes">Close Valve</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">7</property>
</packing>
</child>
<child>
<placeholder/>
</child>
<child>
<object class="GtkButton" id="btnStart">
<property name="label" translatable="yes">Start / Stop training</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">9</property>
</packing>
</child>
<child>
<placeholder/>
</child>
<child>
<object class="GtkButton" id="btnPause">
<property name="label" translatable="yes">Pause / Resume Training</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">11</property>
</packing>
</child>
<child>
<placeholder/>
</child>
<child>
<object class="GtkButton" id="btnExit">
<property name="label" translatable="yes">Exit</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
<signal name="clicked" handler="gtk.main_quit" swapped="no"/>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">13</property>
</packing>
</child>
</object>
<packing>
您可能在Windows和Ubuntu上具有不同的,不兼容的GTK版本。
我再次尝试了Glade3.8(可在官方网站上找到较早的版本),它与上面编写的代码兼容,并且还提供了功能更丰富的RAD工具。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.