如何自动读取 PySimpleGui 上的值?
How can I automaticly read values on PySimpleGui?
我添加了一个浏览文件夹按钮,但在我单击另一个按钮之前它没有给我值。
我试过这样读
while True:
event, values = mainwindow.Read()
if values['Select folder...'] != '':
print(values['Select folder...'])
但同样的事情发生了。
您的问题中没有显示布局。
比如你在这里使用sg.FolderBrowse
。
选项 target
默认为 (sg.ThisRow, -1)
,表示同一行 sg.FolderBrowse
之前的元素。
如果您的布局中没有目标,则不会生成任何事件。
如果有target,只有当target带有选项enable_events=True
.
时才会产生target的事件
因此,您的布局中应该有一个目标元素,大多数情况下,它是带有选项 enable_events=True
的 sg.InputText
。
import PySimpleGUI as sg
layout = [
[sg.InputText(enable_events=True), sg.FolderBrowse('Select folder...')],
]
window = sg.Window("Title", layout, finalize=True)
while True:
event, values = window.read()
if event == sg.WINDOW_CLOSED:
break
print(event, values)
if values['Select folder...'] != '':
print(values['Select folder...'])
window.close()
0 {0: 'D:/Document', 'Select folder...': 'D:/Document'}
D:/Document
如果从 `sg.InputText` 生成的任何事件都会有问题,比如按下键 'A'。这不是您需要的事件,也许也不是元素 `sg.InputText`。所以下一个例子只显示了 `sg.FolderBrowse`。
import PySimpleGUI as sg
layout = [
[sg.InputText(disabled=True, visible=False, enable_events=True), sg.FolderBrowse('Select folder...')],
]
window = sg.Window("Title", layout, finalize=True)
while True:
event, values = window.read()
if event == sg.WINDOW_CLOSED:
break
print(event, values)
if values['Select folder...'] != '':
print(values['Select folder...'])
window.close()
0 {0: 'D:/Document', 'Select folder...': 'D:/Document'}
D:/Document
我添加了一个浏览文件夹按钮,但在我单击另一个按钮之前它没有给我值。
我试过这样读
while True:
event, values = mainwindow.Read()
if values['Select folder...'] != '':
print(values['Select folder...'])
但同样的事情发生了。
您的问题中没有显示布局。
比如你在这里使用sg.FolderBrowse
。
选项 target
默认为 (sg.ThisRow, -1)
,表示同一行 sg.FolderBrowse
之前的元素。
如果您的布局中没有目标,则不会生成任何事件。
如果有target,只有当target带有选项enable_events=True
.
因此,您的布局中应该有一个目标元素,大多数情况下,它是带有选项 enable_events=True
的 sg.InputText
。
import PySimpleGUI as sg
layout = [
[sg.InputText(enable_events=True), sg.FolderBrowse('Select folder...')],
]
window = sg.Window("Title", layout, finalize=True)
while True:
event, values = window.read()
if event == sg.WINDOW_CLOSED:
break
print(event, values)
if values['Select folder...'] != '':
print(values['Select folder...'])
window.close()
0 {0: 'D:/Document', 'Select folder...': 'D:/Document'}
D:/Document
如果从 `sg.InputText` 生成的任何事件都会有问题,比如按下键 'A'。这不是您需要的事件,也许也不是元素 `sg.InputText`。所以下一个例子只显示了 `sg.FolderBrowse`。
import PySimpleGUI as sg
layout = [
[sg.InputText(disabled=True, visible=False, enable_events=True), sg.FolderBrowse('Select folder...')],
]
window = sg.Window("Title", layout, finalize=True)
while True:
event, values = window.read()
if event == sg.WINDOW_CLOSED:
break
print(event, values)
if values['Select folder...'] != '':
print(values['Select folder...'])
window.close()
0 {0: 'D:/Document', 'Select folder...': 'D:/Document'}
D:/Document