0

我一直在尝试运行一个由 Glade 构建 UI 的软件。Glade 然后将 UI 转换为 XML 文件,然后在 Python 中我只需加载该文件。

但是我对 gtk 对象的(可能)不推荐使用的属性有疑问。口译员是这样说的:

 Unknown property: GtkScrolledWindow.min-content-width
  self.__builder.add_from_file('UI2.glade')
/home/jimmy/Documenti/linguaggi_dinamici/progetto/collega_GUI.py:37: GtkWarning: Unknown property: GtkScrolledWindow.min-content-height
  self.__builder.add_from_file('UI2.glade')
/home/jimmy/Documenti/linguaggi_dinamici/progetto/collega_GUI.py:37: GtkWarning: Unknown property: GtkBox.margin-left
  self.__builder.add_from_file('UI2.glade')
/home/jimmy/Documenti/linguaggi_dinamici/progetto/collega_GUI.py:37: GtkWarning: Unknown property: GtkBox.margin-right
  self.__builder.add_from_file('UI2.glade')
/home/jimmy/Documenti/linguaggi_dinamici/progetto/collega_GUI.py:37: GtkWarning: Unknown property: GtkBox.margin-bottom
  self.__builder.add_from_file('UI2.glade')

(main.py:4490): GLib-GObject-ERROR **: cannot create instance of abstract (non-instantiatable) type 'GtkBox'
Trace/breakpoint trap (core dumped)

我可以尝试删除 GtkBox.margin-left-right-bottom,但我需要属性 GtkScrolledWindow.min-content-height。

奇怪的是 GtkScrolledWindow.min-content-width 一直在正常工作,因为我看不到任何警告。

编辑 :: 有关当前运行的 Gtk 和 Glade 版本的信息

Glade: 3.14.2

collega_GUI.py

try:  
    import pygtk  
    pygtk.require("2.0")  
except:  
    pass  

try:  
    import gtk  
    import gtk.glade  
except:  
    print("GTK Not Availible")
    sys.exit(1)

我运行了这个命令来检索 gtk 的版本:

dpkg -l libgtk[0-9]* | grep ^i

我得到了

2.24.20-1ubuntu1
4

1 回答 1

0

glade-3.8.x 系列是支持 Gtk+2 的最后一个版本。林间空地 > 3.8.x 以 Gtk+3 为目标。Ubuntu 提供了glade-gtk2打包 3.8.x 版本的包,而该glade包打包了最新的仅 Gtk+3 版本。

所以如果你的目标是 Gtk+2,你需要安装glade-gtk2和使用那个版本的 glade。

注意:类似地,在 Fedora 上,该glade软件包附带 Gtk+3 版本,而glade3(不是真正的最佳名称)附带 Gtk+2 版本。

于 2014-02-07T13:01:17.110 回答