gtk3中删除了默认参数?

时间:2013-06-11 09:46:27

标签: pygtk pyside gtk3

我尝试将我的pygtk代码移植到gtk3。我收到这个错误:

TypeError: pack_start() takes exactly 5 argument(s) (2 given)

它接缝已删除默认参数。

gtk3(从python访问)不支持默认参数吗?

由于应用程序不大,我问自己是否应该移植到gtk3或pyside ......

删除默认参数对于程序员来说看起来像是一个毫无意义的“创造就业计划”......

我找不到一个好的移植指南(pygtk到python-gtk3)。只有这个:

这样的代码很难看:

box.pack_start(widget, True, True, 0)

我知道如何搜索+替换....但我不想。

1 个答案:

答案 0 :(得分:4)

我可以提出两种选择。一个是你使用pygtkcompat compability module。这可能不是一个好的长期解决方案。

另一种选择是以与兼容性模块相同的方式仅修补pack_start方法。像这样:

orig_pack_start = Gtk.Box.pack_start
def pack_start(self, child, expand=True, fill=True, padding=0):
    orig_pack_start(self, child, expand, fill, padding)
Gtk.Box.pack_start = pack_start

这假设您只想修补一个或两个方法。更重要的是,坚持使用兼容性模块可能会更好。