2011-12-02 103 views
2

我想用GTK +在python2中创建一个图形界面。兼容GTK2和GTK3的Python GUI

现在我正在使用gobject-introspection来使用GTK3,但是我想,如果可能的话,也要与GTK2兼容。

#!/usr/bin/python2 
try: 
    from gi.repository import Gtk 
except: 
    try: 
     import gtk as Gtk 
    except: 
     print("You need GTK") 

我是用我的窗口,一个网格,但似乎Gtk.Grid不存在GTK2。另一方面Gtk.Table存在于两个版本中。

是否值得尝试使一个应用程序兼容两个版本的GTK(以及如何?)或者我将不得不编写几乎两倍的代码?

感谢

回答

2

大幅度的选择归结为:

  1. 写GTK2直接(GTK3是向后兼容)UI的部分
  2. 写可选的实施方式对于那些没有可用的小部件在GTK2中。

在第二种情况下,如果在界面和逻辑之间使用良好的分隔,则不需要编写“两倍”的代码,只需重新实现部分UI。

+1

GTK3是向下兼容?好消息,我会去做那件事。谢谢 –

+0

“大部分”源代码级向后兼容,说实话。 – rodrigo

+1

@MartinTrigaux“向后兼容”我的意思是,具有相同名称的小部件工作相同,所以如果您有为GTK2编写的代码,它也应该在GTK3上工作。希望这是你需要的! :) – mac