我无法创建第三个窗口。代码工作没有错误,但它不显示代码结束的窗口
当前我正在尝试使其显示一个复选框表,供人们选择座位。我测试过它是否根本没有运行。把 print 放在它后面,它就会打印出来。我也尝试让它显示简单的文本,但这也不起作用。 下面是代码:
layout3 = [[sg.Text('Test')]
window3 = sg.Window('Choosing seats',layout3,element_justification='c')
我无法执行和运行代码来测试其功能,因为提供的信息不足。在 PySimpleGUI 中创建和管理窗口时,了解代码的执行流程至关重要。
但是,根据提供的描述,我怀疑该问题与 PySimpleGUI 中窗口事件循环的处理方式有关。
在 PySimpleGUI 中,窗口不会自动显示和更新。需要运行一个事件循环,该循环侦听事件(如按钮单击、窗口关闭等)并相应地更新窗口。
为了解决的问题,需要将第三个窗口的创建和事件循环集成到主代码结构中。以下是如何操作的示例:
import PySimpleGUI as sg
# --- 定义布局 ---
layout1 = [[sg.Button('打开窗口 2')]]
layout2 = [[sg.Button('打开窗口 3')]]
layout3 = [[sg.Text('测试')]]
# --- 创建第一个窗口 ---
window1 = sg.Window('窗口 1', layout1)
# --- 事件循环窗口 1 ---
while True:
event, values = window1.read()
if event == sg.WIN_CLOSED:
break
elif event == '打开窗口 2':
window1.hide()
# --- 创建第二个窗口 ---
window2 = sg.Window('窗口 2', layout2)
# --- 事件循环窗口 2 ---
while True:
event, values = window2.read()
if event == sg.WIN_CLOSED:
break
elif event == '打开窗口 3':
window2.hide()
# --- 创建第三个窗口 ---
window3 = sg.Window('选择座位', layout3, element_justification='c')
# --- 事件循环窗口 3 ---
while True:
event, values = window3.read()
if event == sg.WIN_CLOSED:
break
window3.close()
window2.close()
window1.close()
在此代码中:
-
我们首先定义三个窗口的布局 (
layout1
、layout2
、layout3
)。 -
我们创建第一个窗口 (
window1
) 并运行一个事件循环。 -
在
window1
的事件循环中,我们侦听“打开窗口 2”按钮事件。 -
当按下“打开窗口 2”按钮时,我们创建并显示
window2
,并运行另一个事件循环。 -
同样,在
window2
的事件循环中,我们侦听“打开窗口 3”按钮事件。 -
当按下“打开窗口 3”按钮时,我们创建并显示
window3
,并运行另一个事件循环。
此结构确保每个窗口在单击相应按钮后创建并具有自己的事件循环以处理其事件。
请记住,这只是一个简化的示例,可能需要根据的应用程序逻辑修改它。关键是要了解事件循环对于 PySimpleGUI 中的窗口管理至关重要。
标签:python,pysimplegui From: 78802938