首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >PySimpleGUI:如何不显示空字段

PySimpleGUI:如何不显示空字段
EN

Stack Overflow用户
提问于 2022-09-13 00:51:25
回答 1查看 28关注 0票数 0

我创建了简单的GUI,如下所示。在这个示例中,只包含了三行,但是可以将相同的原则应用于更多行。我希望填充GUI中的所有或相同的行并保存它,但最重要的是,当将保存的文件加载回时,应该只显示已填充的行(而不是全部)。我试过往下走,但没有成功。

代码语言:javascript
运行
AI代码解释
复制
import PySimpleGUI as sg
from datetime import datetime
import base64
from pathlib import Path
import webbrowser

sg.theme('DarkTeal9')      


layout_1 = [[sg.InputText("", key="-IT2-", font='Arial 9', size=(10,1)),
             sg.Combo(["Item1", "Item2", "Item3"],size=(20,1), key='-TEST2-', font='Arial 9'),
             sg.CalendarButton("", close_when_date_chosen=True,  target='-IN2-', font='Arial 9', no_titlebar=False, format='%d-%b-%Y'),
             sg.InputText("", key='-IN2-', size=(20,1), font='Arial 9')]]


layout_a = [[sg.Button("row 2")]]

layout_2 = [[sg.InputText("", key="-IT3-", font='Arial 9', size=(10,1)),
             sg.Combo(["Item1", "Item2", "Item3"],size=(20,1), key='-TEST3-', font='Arial 9'),
             sg.CalendarButton("", close_when_date_chosen=True,  target='-IN3-', font='Arial 9', no_titlebar=False, format='%d-%b-%Y'),
             sg.InputText("", key='-IN3-', size=(20,1), font='Arial 9')]]

layout_b =[[sg.Button("row 3")]]

layout_3 = [[sg.InputText("", key="-IT4-", font='Arial 9', size=(10,1), visible=True),
             sg.Combo(["Item1", "Item2", "Item3"],size=(20,1), key='-TEST4-', font='Arial 9'),
             sg.CalendarButton("", close_when_date_chosen=True,  target='-IN4-', font='Arial 9', no_titlebar=False, format='%d-%b-%Y'),
             sg.InputText("", key='-IN4-', size=(20,1), font='Arial 9', justification="c")]]

               
layout = [
          [sg.Column(layout_1, key='-LAY1-'), sg.Column(layout_a, visible=True, key="-LAYA-")],
          [sg.Column(layout_2, visible=False, key='-LAY2-'), sg.Column(layout_b, visible=False, key='-LAYB-')],
          [sg.Column(layout_3, visible=False, key='-LAY3-')],
          [sg.Button ("Save"), sg.Button ("Load"), sg.Button('Exit'),],
          ]
        

window = sg.Window("", layout)


while True:
    event, values = window.read()
        
    if event == 'Save':
        file_name = sg.popup_get_file("Save", save_as=True, no_window=True)
        window.SaveToDisk(file_name)
    if event == 'Load':
        file_name = sg.popup_get_file('Load', no_window=True)
        window.LoadFromDisk(file_name)
        if values["-IT2-"] != "":
            window[f'-LAY1-'].update(visible=True)
            window[f'-LAYA-'].update(visible=False)
        if values ["-IT3-"] != "":
            window[f'-LAY2-'].update(visible=True)
        if values["-IT4-"] != "":
            window[f'-LAY3-'].update(visible=True)
            
    if event == sg.WIN_CLOSED or event == 'Exit':
        break
        window.close()
    if event == 'row 2':
        window[f'-LAY2-'].update(visible=True)
        window[f'-LAYA-'].update(visible=False)
        window[f'-LAYB-'].update(visible=True)
        layout = str(event)
    if event == 'row 3':
        window[f'-LAY3-'].update(visible=True)
        window[f'-LAYB-'].update(visible=False)
        layout = str(event)

window.close()
EN

回答 1

Stack Overflow用户

发布于 2022-09-13 09:07:19

试试看

代码语言:javascript
运行
AI代码解释
复制
    if event == 'Load':
        file_name = sg.popup_get_file('Load', no_window=True)
        window.LoadFromDisk(file_name)
        v1, v2, v3 = window["-IT2-"].get(), window["-IT3-"].get(), window["-IT4-"].get()
        if v1:
            window[f'-LAY1-'].update(visible=True)
            window[f'-LAYA-'].update(visible=False)
        if v2:
            window[f'-LAY2-'].update(visible=True)
        if v3:
            window[f'-LAY3-'].update(visible=True)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73700091

复制
相关文章

相似问题

领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文