使用 PyGTK 创建子 window
Creating a sub-window with PyGTK
我正在使用 PyGTK 在 python 中创建一个图形用户界面,但我不知道如何制作子 window。例如我有我的主要 window:
class Main(Gtk.Window):
def __init__(self):
Gtk.Window.__init__(self, title="GCT")
self.box = Gtk.Box()
self.set_default_size(300, 300)
self.set_position(Gtk.WindowPosition.CENTER)
self.table = Gtk.Table(6, 5)
self.button = Gtk.Button("sub-window")
self.table.attach(self.button, 0, 2, 0, 1)
self.box.add(self.table)
self.add.(self.box)
self.show_all()
当我点击子 window 按钮时,我想启动一个新的 window 独立于我的主 window 并且这将允许我仍然操作主 window没有关闭子window。我怎样才能做到这一点?
from gi.repository import Gtk
class AnotherWindow(Gtk.Window):
def __init__(self):
Gtk.Window.__init__(self, title="GCT")
self.connect("destroy", lambda x: Gtk.main_quit())
self.add(Gtk.Label("This is another window"))
self.show_all()
class Main(Gtk.Window):
def __init__(self):
Gtk.Window.__init__(self, title="GCT")
self.connect("destroy", lambda x: Gtk.main_quit())
self.box = Gtk.Box()
self.set_default_size(300, 300)
self.set_position(Gtk.WindowPosition.CENTER)
self.table = Gtk.Table(6, 5)
self.button = Gtk.Button("sub-window")
self.button.connect("clicked", self.open_window)
self.table.attach(self.button, 0, 2, 0, 1)
self.box.add(self.table)
self.add(self.box)
self.show_all()
def open_window(self, win):
subw = AnotherWindow()
def main():
m = Main()
Gtk.main()
return 0
if __name__ == '__main__':
main()
每次单击 sub_window 按钮时,都会打开另一个 window。它们会相互堆叠,所以你不会看到太多:-)
您应该始终将连接添加到销毁操作 - 否则 Gtk 的主循环将永远不会停止,并且您将无法将控制权交还给键盘。
我正在使用 PyGTK 在 python 中创建一个图形用户界面,但我不知道如何制作子 window。例如我有我的主要 window:
class Main(Gtk.Window):
def __init__(self):
Gtk.Window.__init__(self, title="GCT")
self.box = Gtk.Box()
self.set_default_size(300, 300)
self.set_position(Gtk.WindowPosition.CENTER)
self.table = Gtk.Table(6, 5)
self.button = Gtk.Button("sub-window")
self.table.attach(self.button, 0, 2, 0, 1)
self.box.add(self.table)
self.add.(self.box)
self.show_all()
当我点击子 window 按钮时,我想启动一个新的 window 独立于我的主 window 并且这将允许我仍然操作主 window没有关闭子window。我怎样才能做到这一点?
from gi.repository import Gtk
class AnotherWindow(Gtk.Window):
def __init__(self):
Gtk.Window.__init__(self, title="GCT")
self.connect("destroy", lambda x: Gtk.main_quit())
self.add(Gtk.Label("This is another window"))
self.show_all()
class Main(Gtk.Window):
def __init__(self):
Gtk.Window.__init__(self, title="GCT")
self.connect("destroy", lambda x: Gtk.main_quit())
self.box = Gtk.Box()
self.set_default_size(300, 300)
self.set_position(Gtk.WindowPosition.CENTER)
self.table = Gtk.Table(6, 5)
self.button = Gtk.Button("sub-window")
self.button.connect("clicked", self.open_window)
self.table.attach(self.button, 0, 2, 0, 1)
self.box.add(self.table)
self.add(self.box)
self.show_all()
def open_window(self, win):
subw = AnotherWindow()
def main():
m = Main()
Gtk.main()
return 0
if __name__ == '__main__':
main()
每次单击 sub_window 按钮时,都会打开另一个 window。它们会相互堆叠,所以你不会看到太多:-)
您应该始终将连接添加到销毁操作 - 否则 Gtk 的主循环将永远不会停止,并且您将无法将控制权交还给键盘。