所以我需要一个下拉菜单,用户选择他/她的客户端,然后返回有关该客户的信息。
假设我有一个文件:
["client1", "client2", "client3"]
我有这段代码:
from tkinter import *
master = Tk()
with open('ubclientlistvars.txt', 'r') as clients:
clients = (clients.readlines())
variable = StringVar(master)
variable.set("Choose Client")
w = OptionMenu(master, variable, clients)
w.pack()
mainloop()
如何将文件中的客户端绘制到下拉菜单中?
当我运行此代码时,我得到以下两个选项:
Choose Client
和{["client1", "client2", "client3"]}
答案 0 :(得分:3)
您需要实际解析该文件。如果文件内容是您发布的内容,那么readlines()
只返回一行文本。它不会将文件内容神奇地转换为Python对象。假设文件是:
client1
client2
client3
然后,您可以使用类似clients = [i.strip() for i in f.readlines()]
的内容来获取正确的客户列表,并将其传递给OptionMenu
:
w = OptionMenu(master, variable, *clients)
如果您无法更改文件格式,则需要在显示之前清理输入...
import re
data = f.read() # ["client1", "client2", "client3"]
data = re.sub('["\[\]]', '', data) # remove the ", [, and ] characters
clients = data.split(',') # split the list of clients on the comma