python - 如何在 PySimpleGui 中设置两个可互换的可见容器?
问题描述
我将有启用事件的单选按钮。基于所选值,我希望元素的容器之一可见而另一个不可见。我也知道所有元素都有一个可见的属性,我只想对一组元素执行此操作,而不仅仅是一个。
我知道列元素,但是我的两个容器应该位于相同的水平位置。
容器中包含哪些元素的示例:
[sg.InputText(size=(50, 1), key='-FILENAME-'), sg.FileBrowse()],
[sg.Button("Train", key="-train-")],
[sg.ProgressBar(1, orientation='h', size=(20, 20), key='progress')],
[sg.Canvas(key='-CANVAS-', size=(200, 200))],
[sg.InputText(size=(50, 1), default_text="0.5", key='anomaly_threshold'),sg.Button("Decide Threshold",key="-anomaly_threshold-")],
解决方案
用作sg.Column
两个容器并将它们放在布局中的同一行。在 True 和 False 之间切换visible
列的选项。
示例代码,
import PySimpleGUI as sg
radio_tag = ["Next", "PREV"]
sg.theme("DarkBlue3")
sg.set_options(font=("Courier New", 11))
cols = [
[[sg.Text("Next element is sg.Input", size=(28, 1)), sg.Input()]],
[[sg.Input(), sg.Text("Previous element is sg.Input", size=(28, 1))]],
]
layout =[
[sg.Radio(text, "position", default=(i==0), enable_events=True, key=text)
for i, text in enumerate(radio_tag)],
[sg.Column(cols[i], visible=(i==0), key=f'COL {i}') for i in range(2)],
]
window = sg.Window("Title", layout, finalize=True)
while True:
event, values = window.read()
if event == sg.WINDOW_CLOSED:
break
elif event in radio_tag:
for i in range(2):
window[f'COL {i}'].update(visible=values[radio_tag[i]])
window.close()
推荐阅读
- logistic-regression - 用于预测逻辑广义线性混合模型 (GLMM) 的置信区间
- virtual-machine - virt-install 挂起 - 虚拟机的 GPU 直通
- ios - 将用户重定向到包含电话号码的电话应用程序,而无需开始通话
- java - 身份验证firebase在注销后记住我
- jquery - 如何打印星号矩形
- r - 更新:应用策略时的 quantstrat 错误:chart_Series 中的错误
- java - 如何在android中检测软键盘在任何其他应用程序中显示/隐藏?
- python - 如何检查列表a是否大于列表b然后替换它
- python - 有效地初始化一个 numpy 稀疏矩阵
- javascript - 上传对话框在我正在创建的网页上出现后立即消失