我尝试将我的pygtk代码移植到gtk3.我收到此错误:
TypeError: pack_start() takes exactly 5 argument(s) (2 given)
Run Code Online (Sandbox Code Playgroud)
它接缝已删除默认参数.
gtk3(从python访问)不支持默认参数吗?
由于应用程序不大,我问自己是否应该移植到gtk3或pyside ...
删除默认参数对于程序员来说似乎是一个毫无意义的"创造就业计划"......
我找不到一个好的移植指南(pygtk到python-gtk3).只有这个:
像这样的代码是丑陋的:
box.pack_start(widget, True, True, 0)
Run Code Online (Sandbox Code Playgroud)
我知道如何搜索+替换....但我不想.
我可以建议两个选项。一种是使用pygtkcompat兼容性模块。但是,这可能不是一个好的长期解决方案。
另一种选择是以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
Run Code Online (Sandbox Code Playgroud)
假设您只想修补一种或两种方法。不仅如此,坚持使用兼容性模块可能更好。
| 归档时间: |
|
| 查看次数: |
637 次 |
| 最近记录: |