繁体   English   中英

我可以从文本文件中填充Python tkinter组合框吗?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM