【问题标题】:Python GUI both compatible GTK2 and GTK3Python GUI 兼容 GTK2 和 GTK3
【发布时间】:2011-12-02 10:31:52
【问题描述】:

我想用 GTK+ 在 python2 中创建一个图形界面。

目前我正在使用 gobject-introspection 来使用 GTK3,但如果可能的话,我希望也与 GTK2 兼容。

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

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

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

谢谢

【问题讨论】:

    标签: python gtk pygtk pygobject


    【解决方案1】:

    基本上选择归结为:

    1. 直接为 GTK2 编写(GTK3 向后兼容)
    2. 为那些在 GTK2 中不可用的小部件编写 UI 部分的替代实现。

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

    【讨论】:

    • GTK3 向后兼容?好的,好消息,我会这样做的。谢谢
    • 老实说,“大部分”源代码级向后兼容。
    • @MartinTrigaux “向后兼容”我的意思是同名小部件的工作方式相同,所以如果您为 GTK2 编写代码,它也应该在 GTK3 上工作。希望这是你需要的! :)
    • 但是,如果您使用 glade 编写了 pyGTK2,并且除非您转换为完全不同的格式,否则您不能 use glade with pygobject Gtk3,那么它并不是真正的“向后兼容”,不是吗?
    猜你喜欢
    • 1970-01-01
    • 2018-08-04
    • 2019-06-19
    • 1970-01-01
    • 2010-10-22
    • 2021-09-24
    • 2011-05-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多