如何解决如何在同一窗口中打印选定的表格元素?
我正在研究一个 simple executable,它允许我选择一个表格元素。
目前,当我选择一个表格元素时,它会产生一个 popup notifying 表示我选择了特定元素
但是,我希望每次选择一个元素时都在表格旁边的大空间中 print the element,但是我找到的解决方案并不完全符合我的想法。有没有办法解决我的困境?
import PySimpleGUI as sg
choices = ('Windows Enterprise 10','Windows Server 19','MacOS','Ubuntu','Debian')
layout = [ [sg.Text('Pick an OS')],[sg.ListBox(choices,size=(20,5),key='-OS-',enable_events=True)] ]
window = sg.Window('Pick an OS',layout,size=(500,200))
while True: # the event loop
event,values = window.read()
if event == sg.WIN_CLOSED:
break
if values['-OS-']: # if something is highlighted in the list
sg.popup(f"The OS you selected is: {values['-OS-'][0]}")
window.close()
解决方法
在您的 sg.Listbox
旁边放置另一个元素以显示结果,然后使用值 sg.Listbox
更新该元素。元素可以是sg.Text
,需要自己将消息拆分成行,也可以是sg.Multiline
。
import PySimpleGUI as sg
choices = (
'Windows Enterprise 10','Windows Server 19','MacOS','Ubuntu','Debian',)
sg.theme('DarkBlue3')
sg.set_options(font=("Courier New",12))
layout = [
[sg.Text('Pick an OS')],[sg.Listbox(choices,size=(22,5),key='-OS-',enable_events=True),sg.Text('',size=(40,2),font=("Courier New",12,'bold'),key='-OUTPUT-')],]
window = sg.Window('Pick an OS',layout)
while True: # the event loop
event,values = window.read()
if event == sg.WIN_CLOSED:
break
elif event == '-OS-':
text = f"You have selected: {values['-OS-'][0]}\nOperating System"
window['-OUTPUT-'].update(value=text)
window.close()
,
navigator.geolocation.getCurrentPosition(pos => {
const lat = pos.coords.latitude;
const lon = pos.coords.longitude;
fetch(
`https://api.openweathermap.org/data/2.5/weather?lat=${lat}&lon=${lon}&appid=bc12083e70d2d22298c2df1cec7101d9&units=metric`
).then(response => {
return response.json();
}).catch(err => {
console.log(`Error: ${err}`)
})
});
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。