PySimpleGUI获取用户输入时如何去除元组格式仅保留字符串
解决PySimpleGUI获取输入值为元组的问题
快速解决方法
既然values["insert name"]返回的是('customer name jhon',)这种单元素元组,直接通过索引取第一个元素就能得到纯字符串:
customer = values["insert name"][0] print(f"customer name is {customer}")
为什么会返回元组?
正常情况下sg.InputText组件的返回值应该是字符串,出现元组的情况大概率是以下原因:
- 误使用了返回元组的输入组件(比如
sg.FileBrowse、sg.FolderBrowse这类带浏览按钮的组件,会返回(输入文本, 按钮状态)的元组) - 使用了旧版本的PySimpleGUI,部分旧版本对组件返回值的处理逻辑不同
- 该输入组件被嵌套进了需要返回多值的容器组件中
验证组件类型
检查你的布局代码,确认使用的是sg.InputText而非其他返回元组的组件:
layout = [ [sg.Text("window")], [sg.Text("customer name"), sg.InputText(key="insert name")] # 确认此处为sg.InputText ]
如果确实是sg.InputText,直接用索引提取第一个元素即可解决问题;如果是其他组件,根据组件类型调整取值逻辑即可。
内容的提问来源于stack exchange,提问作者André Oliveira
相关产品推荐
相关产品推荐

