【发布时间】:2020-07-05 20:15:15
【问题描述】:
过去,要使用 Matplotlib Widgets 构建单选按钮并将按下的按钮名称打印到终端,我已经这样做了:
import matplotlib.pyplot as plt
from matplotlib.widgets import RadioButtons
def update(val):
print(rb.value_selected)
fig.canvas.draw_idle()
fig, ax = plt.subplots(1, 1)
ax = plt.axes([0.5, 0.4, 0.1, 0.15], facecolor='gray')
rb = RadioButtons(ax, ('pi', '42'), active=0)
rb.on_clicked(update)
plt.show()
单选按钮上的更改总是会生成一个事件。
查看this answer 中的示例,我似乎还需要包含一个额外的Read 按钮;单选按钮的可见外观可能与我的脚本认为用户想要的不同,直到用户按下Read。操作单选按钮似乎不会生成事件。然后你必须按下第二个按钮,上面写着 嘿!我已经下定决心了,现在看看吧!
import PySimpleGUI as sg
layout = [[sg.Radio('pi', 'num', default=True) ,
sg.Radio('42', 'num')],
[sg.Button('Read')]]
window = sg.Window('Radio Button Example', layout)
while True: # Event Loop
event, values = window.Read()
if event in (None, 'Cancel'):
break
print(event, values)
window.close()
我认为您遇到了错误或单选按钮 enable_events 未实现。我以为是,但可能不在 Qt 上。我会优先考虑并查看代码。
这让我觉得应该有一种方法可以在 PySimpleGUI 中生成一个事件,当一个单选按钮被改变而不需要一个单独的按钮,但我不知道是否有一个。
问题:有没有办法让 PySimpleGUI 单选按钮在更改时生成事件?
【问题讨论】:
-
文档清楚地讨论了这一点。将它们发布在 GitHub 上也很好,因为它会删除一个要检查的位置。
-
确实如此!我想我被单页文档上的 1 MB 文本墙弄得不知所措,我没想到它会成为给定单选按钮集群的每个元素的单独参数,但我可以使用它。跨度>
-
被文档吓倒的答案是搜索它(按 control F),或者花时间阅读它,以免它不堪重负。诚实的抱怨是文件太多?页面左边缘有一个目录。每个元素都有一个详细的调用签名,它的方法显示每个参数、类型和描述。至少转到文档末尾的那个部分。
-
@MikeyB 好的,你对文档的布局很着迷,明白了!
标签: python python-3.x radio-button widget pysimplegui