Python Gtk-退出多窗口程序
我在尝试退出多窗口程序时遇到了一些问题,确切地说是2。 有一个连接窗口和一个主窗口。如果用户单击connect窗口的native X按钮,它将关闭,程序将结束,一切正常 但是如果用户确实连接并且主窗口打开,如果用户单击主窗口的X按钮,窗口将关闭,但进程不会终止 我尝试过不同的方法,但似乎都不管用,因此代码的当前状态如下: “连接”窗口(Python Gtk-退出多窗口程序,python,gtk,glade,Python,Gtk,Glade,我在尝试退出多窗口程序时遇到了一些问题,确切地说是2。 有一个连接窗口和一个主窗口。如果用户单击connect窗口的native X按钮,它将关闭,程序将结束,一切正常 但是如果用户确实连接并且主窗口打开,如果用户单击主窗口的X按钮,窗口将关闭,但进程不会终止 我尝试过不同的方法,但似乎都不管用,因此代码的当前状态如下: “连接”窗口(self.window.connect('delete-event',gtk.main_quit)行被注释,因为删除事件绑定到.glade文件中的quit方法):
self.window.connect('delete-event',gtk.main_quit)
行被注释,因为删除事件绑定到.glade文件中的quit方法):
主窗口(同样,self.window.connect('delete-event',self.gtk.main_quit)
被注释,因为delete事件绑定到my.glade文件中的quit方法):
我认为这无关紧要,但每个窗口都在自己的.py文件中,程序从第三个文件启动:
from gui.connect_win import ConnectWin
from gi.repository import Gtk
connect_win = ConnectWin(Gtk)
connect_win.show_all()
只需使用GtkApplication为您处理多个GtkApplication窗口。只需使用GtkApplication为您处理多个GtkApplication窗口。
import gi
gi.require_version('Gtk', '3.0')
from gi.repository import Gio, GObject
class MainWinHandler(object):
def __init__(self, connect_win, window, builder, gtk):
self.connect_win = connect_win
self.window = window
self.builder = builder
self.gtk = gtk
# self.window.connect('delete-event', self.gtk.main_quit)
def quit(self, widget, data=None):
self.gtk.main_quit()
class MainWin(object):
def __init__(self, connect_win, gtk, krpc_handler):
self.gtk = gtk
self.builder = self.gtk.Builder()
self.builder.add_from_file(r'path_to_glade_file')
self.window = self.builder.get_object('main')
self.builder.connect_signals(MainWinHandler(connect_win, self.window, self.builder, self.gtk, krpc_handler))
def show_all(self):
self.window.show_all()
self.gtk.main()
from gui.connect_win import ConnectWin
from gi.repository import Gtk
connect_win = ConnectWin(Gtk)
connect_win.show_all()