You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python PySimpleGUI双页问答游戏答案存储与页面显示问题求解

问题修复方案

第二页空白问题修复

空白原因是你将两个页面容器放在了上下两个独立的布局行中,第一个容器高度设置为768px,隐藏后位于第二行的第二页容器被挤出了窗口可视区域。
修改方案:将两个容器放在同一布局行堆叠显示,调整layout代码如下:

layout = [
    [
        sg.Column(
            column1,
            scrollable=True,
            vertical_scroll_only=True,
            visible=True,
            key="column1",
            size=(1366, 768),
        ),
        sg.Column(
            column2,
            scrollable=True,
            vertical_scroll_only=True,
            visible=False,
            key="column2",
            size=(1366, 768),
        )
    ],
]

答案写入d3字典功能实现

PySimpleGUI的window.read()返回的values变量按输入控件的创建顺序存储了所有用户输入内容,你可以按题目顺序对应取值写入d3。在OK按钮的触发逻辑中添加写入代码即可:

elif event == "ОК":
    # 按题目顺序写入用户答案到d3
    d3[1] = values[0]  # 第1题输入框
    d3[2] = values[1]  # 第2题多行输入框
    d3[3] = values[2]  # 第3题输入框
    d3[4] = values[3]  # 第4题输入框
    d3[5] = values[4]  # 第5题输入框
    d3[6] = values[5]  # 第6题输入框
    d3[7] = values[6]  # 第7题多行输入框
    # 可选:如果需要对比正确答案,可添加数字类型转换逻辑
    # for num in [1,3,5,6]:
    #     try:
    #         d3[num] = int(d3[num].strip())
    #     except:
    #         pass

    column2.update(visible=True)
    column1.update(visible=False)

完整可运行代码
import PySimpleGUI as sg

d = {
    1: "1. Когда мы познакомились?\n 1) 4 июля\n 2) 20 июля\n 3) 12 июля\n 4) 13 июля",
    2: "2. Чего я боюсь больше всего в жизни?",
    3: "3. Какой цвет я больше всего предпочитаю?\n 1) розовый\n 2) чёрный\n 3) голубой\n 4) зелёный",
    4: "4. Моё тотемное животное?",
    5: "5. Какая марка автомобилей мне нравится?\n 1) Audi\n 2) Lamborghini\n 3) Tesla\n 4) Nissan",
    6: "6. Мой любимый фрукт летом?\n 1) ананас\n 2) слива\n 3) персик\n 4) инжир",
    7: "7. Я верующий – в кого я верю?(это учёный-физик)",
}  # 题库
d2 = {
    1: 3,
    2: "Клоунов",
    3: 3,
    4: "лиса",
    5: 3,
    6: 3,
    7: "Исаак Ньютон - английский физик, математик, механик и астроном, один из создателей классической физики. Автор фундаментального труда «Математические начала натуральной философии», в котором он изложил закон всемирного тяготения и три закона механики, ставшие основой классической механики.",
}  # 正确答案
d3 = {}  # 用户答案存储字典
font = ("Times New Roman", 14)
sz1 = (30, 3)
sz2 = (110, 3)
sg.set_options(font=font)
sg.theme("DarkAmber")
column1 = [
    [sg.Text("Здравствуйте. Сейчас вы пройдёте небольшую викторину.")],
    [sg.Text(d[1]), sg.InputText()],
    [sg.Text(d[2], size=(sz1)), sg.Multiline(size=(sz2))],
    [sg.Text(d[3]), sg.InputText()],
    [sg.Text(d[4]), sg.InputText()],
    [sg.Text(d[5]), sg.InputText()],
    [sg.Text(d[6]), sg.InputText()],
    [sg.Text(d[7], size=(sz1)), sg.Multiline(size=(sz2))],
    [sg.Button("ОК"), sg.Button("Выйти")],
]  # 第一页布局

column2 = [
    [sg.Text("А теперь сравним твои ответы с теми, что подготовил я:", size=(30, 3))],
    [sg.Button("Выйти")],
]  # 第二页布局
layout = [
    [
        sg.Column(
            column1,
            scrollable=True,
            vertical_scroll_only=True,
            visible=True,
            key="column1",
            size=(1366, 768),
        ),
        sg.Column(
            column2,
            scrollable=True,
            vertical_scroll_only=True,
            visible=False,
            key="column2",
            size=(1366, 768),
        )
    ],
]
window = sg.Window("Приветик", layout, finalize=True)
window.Maximize()
column1, column2 = window["column1"], window["column2"]
while True:
    event, values = window.read()
    if event in (sg.WIN_CLOSED, "Выйти"):
        break
    elif event == "ОК":
        # 写入用户答案
        d3[1] = values[0]
        d3[2] = values[1]
        d3[3] = values[2]
        d3[4] = values[3]
        d3[5] = values[4]
        d3[6] = values[5]
        d3[7] = values[6]
        # 切换页面
        column2.update(visible=True)
        column1.update(visible=False)
window.close()

内容的提问来源于stack exchange,提问作者RizeD

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 11:24:08