python - 使用 PySimpleGui 单击按钮时,我无法在 gui 上显示按钮名称或保存输入
问题描述
我正在使用 PySimpleGUI,我希望能够单击一个按钮并将其显示在按钮下的文本上作为选择。选项是拆分或数据填充,但我无法弄清楚如何让事件处理程序更新文本或保存该选项,然后让代码根据该选项采取相应的行动。
到目前为止的代码看起来有点像这样
import PySimpleGUI as sg
layout = [
[sg.Text('Would you like to SPLIT or SPLIT AND DATA POPULATE')],
[sg.Button('Split', key='-SPLIT-'), sg.Button('Split and Populate', key ='-SANDP-')],
[sg.Text('Current Process:'), sg.Text('Process', key='-PROCESS-')]
]
window = sg.Window('Title', layout,size=(1000,500))
while True:
event, values = window.read()
if event is None or event == 'EXIT':
break
if event == '-SPLIT-':
window['-PROCESS-'].update(values("-SPLIT-"))
choice1 = window['-PROCESS-'].update("split")
if event == '-Split and Populate-':
window['-PROCESS-'].update("Split and Populate")
choice2 = window['-PROCESS-'].update("Split and Populate")
window.close()
#psuedo code following
if choice1
bla bla bla
if choice2
bla bla bla
我希望能够单击并将该按钮名称存储在选择 1 或选择 2 中,并且该按钮名称也出现在 gui 中,这可能吗?
解决方案
关键将是button_text
ifsg.Button
选项key
或未k
指定且不重复,因此没有“-Split and Populate-”事件。
大多数时候, a 的值sg.Button
不会改变,所以它不会是values
from中的数据sg.Window().read
。要获取文本sg.Button
,您可以调用的方法get_text
。sg.Button
对于当你点击或者其他元素时从元素的键产生的事件sg.Button
,然后决定在if ... elif ... else ...
语句中做什么。
import PySimpleGUI as sg
layout = [
[sg.Text('Would you like to SPLIT or SPLIT AND DATA POPULATE')],
[sg.Button('Split', key='-SPLIT-'),
sg.Button('Split and Populate', key ='-SANDP-')],
[sg.Text('Current Process:'),
sg.Text('Process', size=(0, 1), key='-PROCESS-')]
]
window = sg.Window('Title', layout, size=(1000,500))
while True:
event, values = window.read()
if event is None or event == 'EXIT':
break
elif event in ('-SPLIT-', '-SANDP-'):
window['-PROCESS-'].update(value=window[event].get_text())
if event == '-SPLIT-':
pass
elif event == '-SANDP-':
pass
window.close()
推荐阅读
- c# - 如何使用单个 ajax 调用填充多个下拉列表
- openssl - 证书中的“-----BEGIN TRUSTED CERTIFICATE-----”是什么意思?
- python - 为什么我调用函数后全局变量没有更新?
- python - 如何将这段数据写入 csv 文件?
- python - 如何用python打开可执行文件
- php - 如何为多个按钮分配ajax变量
- javafx - 如何在宽度/高度发生变化时保持非托管节点位置固定
- javascript - 有没有办法跳过当前播放的视频(通过按键)并继续下一个视频?
- javascript - 使用 datetimepicker 的 chartjs 条形图过滤器
- sql - 如何显示最近 3 个月的字段日期(数据日期类型)