在PySimpleGUI中,没有封装模态窗口的设置,所以可以直接调用tkinter中的方法去实现。
sub_window.Finalize() sub_window.TKroot.transient() sub_window.TKroot.grab_set() sub_window.TKroot.focus_force()
import PySimpleGUI as sg
# 模态窗口案例
layout = [[ sg.Text('窗口1文字'),],
[sg.Input(do_not_clear=True)],
[sg.Text('',size=(39,2), key='_OUTPUT_')],
[sg.Button('Launch 2')]]
win1 = sg.Window('窗口1',layout)
while True:
ev1, vals1 = win1.Read(timeout=100)
if ev1 is None:
break
win1.FindElement('_OUTPUT_').Update(vals1[0])
if ev1 == 'Launch 2':
layout2 = [[sg.Text('窗口2文字')],
[sg.Button('Exit')]]
win2 = sg.Window('Window 2', layout2)
#模态窗口设置
win2.Finalize()
win2.TKroot.transient()
win2.TKroot.grab_set()
win2.TKroot.focus_force()
while True:
ev2, vals2 = win2.Read()
if ev2 in [None,'Exit']:
win2.Close()
break