下面的两个代码片段都将使用python创建一个空的Gtk窗口。然而他们似乎完全不同。
一方与另一方的主要好处是什么? 选择一种与另一种相比,是否存在性能,安全性或兼容性问题?
1st code-snip:
#!/usr/bin/python
from gi.repository import Gtk
win = Gtk.Window()
win.connect("delete-event", Gtk.main_quit)
win.show_all()
Gtk.main()
2nd code-snip:
from gi.repository import Gtk, GdkPixbuf, Gdk
import os, sys
class GUI:
def __init__(self):
window = Gtk.Window()
window.set_title ("Hello World")
window.connect_after('destroy', self.destroy)
window.show_all()
def destroy(self, window):
Gtk.main_quit()
def main():
app = GUI()
Gtk.main()
if __name__ == "__main__":
sys.exit(main())
答案 0 :(得分:1)
第二个片段更面向对象,它定义了一个可以为您的应用程序扩展的类GUI
,在我看来这是一个更优雅的解决方案。此外,它正确定义了main()
函数并调用它,这为您提供了更大的灵活性,并允许您从其他地方导入此模块,而无需在导入时实例化GUI。正如您所问,没有真正的性能,兼容性或安全隐患。
在第二个片段中,我会将window
绑定到self
(self.window = Gtk.Window()
),允许您从班级中的任何方法进行访问。