【发布时间】:2017-11-18 21:27:26
【问题描述】:
这意味着在 tkinter 标签的新标签中显示来自 CSV 元素周期表的单个元素名称(第 0 行中的原子符号,第 1 行中的名称)。用户应该能够输入原子符号,单击查找按钮并输出名称。但是到目前为止,它没有打印任何东西,而且我不确定哪个部分出了问题,因为我对 tkinter 还很陌生。
当前代码:
import tkinter as tk
base_container = tk.Tk()
element = tk.StringVar()
def search(element):
import csv
choice = element
with open('Periodic_Table.csv') as file:
csv_file = csv.reader(open('Periodic_Table.csv', "rt"), delimiter=",")
for row in csv_file:
if choice == str(row[0]):
tk.Label(base_container, text=str(row[1])).grid(row=4, column=0)
entry = tk.Label(base_container, text="Enter a chemical symbol:").grid(row=0, column=0, sticky="NE")
text = tk.Entry(base_container, width= 30, textvariable=element).grid(row=0, column=1, padx=2, pady=2, sticky="NE", columnspan=4)
Find = tk.Button(base_container, text="Find", command=lambda: search('element'))
Find.grid(row=30, column=10, sticky="SW", padx=2, pady=2)
Quit = tk.Button(base_container, text="Quit").grid(row=50, column=10, sticky="SW", padx=2, pady=2)
base_container.mainloop()
Periodic_Table.csv 开头如下:
H, Hydrogen
He, Helium
Li, Lithium
Be, Beryllium
B, Boron
C, Carbon
【问题讨论】:
-
为什么要将字符串
'element'传递给search函数?你能给我们看几行'Periodic_Table.csv'文件吗? -
欢迎来到本站。请详细说明您跑步时发生的情况以及您尝试过的情况。
-
顺便说一句,每次要更新输出时都创建一个新标签并不是一个好主意。旧标签仍然存在,但它们将被埋在新标签之下。相反,创建一个标签并更新其文本。
-
传递了字符串“元素”以保证可以使用变量,尽管我可能错了。
-
csv 的前几行如下所示:H, Hydrogen/ He, Helium/ Li, Lithium/ Be, Beryllium/ B, Boron/ C, Carbon/