[英]Can I populate a Python tkinter combobox from a text file?
在这里编码新手,试图掌握Python 3。
是否可以使用从文本文件中读取的单个字值来填充tkinter Combobox
?
我想要做的是替换“鱼”,“鸟”等的硬编码值(见下文),从文本文件中读取值(每个单词在一个单独的行上)。 我一直在读关于字典,数组等等,我所做的就是让自己迷惑!
提前致谢。
此代码段适用于硬编码的组合值。 如何更改它从文件中读取值?
# imports
import tkinter as tk
from tkinter import ttk
# Create instance
win = tk.Tk()
# Add a title
win.title("Combo Test")
# Creature Drop Down
ttk.Label(win, text="Select Creature").grid(column=1, row=3)
creature_box = tk.StringVar()
creature_chosen = ttk.Combobox(win, width=20, state='readonly')
creature_chosen['values'] = ('Fish', 'Birds', 'Insects', 'Reptiles')
creature_chosen.grid(column=2, row=3)
creature_chosen.current(0)
# Start GUI
win.mainloop()
您可以轻松地将这些值存储在txt
文件中并从那里读取它们。 考虑到文件的内容格式如下:
Fish
Birds
Insects
Reptiles
您可以修改您的代码如下:
# imports
import tkinter as tk
from tkinter import ttk
# Read values from file
creatures = []
with open('data.txt') as inFile:
creatures = [line for line in inFile]
# Create instance
win = tk.Tk()
# Add a title
win.title("Combo Test")
# Creature Drop Down
ttk.Label(win, text="Select Creature").grid(column=1, row=3)
creature_box = tk.StringVar()
creature_chosen = ttk.Combobox(win, width=20, state='readonly')
creature_chosen['values'] = tuple(creatures)
creature_chosen.grid(column=2, row=3)
creature_chosen.current(0)
# Start GUI
win.mainloop()
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.