【发布时间】:2018-07-09 07:36:15
【问题描述】:
尽我最大的努力学习 Tkinter,但每一步都惨遭失败。
我正在尝试编写一个 GUI,它可以根据我的脚本导入的 .csv 文件中的行条目创建一个下拉列表,或者一个按钮网格。
事情是,这两次尝试都失败了,因为我是新手。
任何人都可以将我链接到资源/给我实现我想要的步骤吗?
【问题讨论】:
标签: python database user-interface tkinter
尽我最大的努力学习 Tkinter,但每一步都惨遭失败。
我正在尝试编写一个 GUI,它可以根据我的脚本导入的 .csv 文件中的行条目创建一个下拉列表,或者一个按钮网格。
事情是,这两次尝试都失败了,因为我是新手。
任何人都可以将我链接到资源/给我实现我想要的步骤吗?
【问题讨论】:
标签: python database user-interface tkinter
这里是解决方案。下次请粘贴您编写的一些代码,以便我们知道您具体尝试了什么。
import tkinter as tk
dataMatrix = [] #this will be 2d list containing csv table elements as strings
with open("filename.csv") as file:
for row in file:
dataMatrix.append(row[:-1].split(";"))
mainWindow = tk.Tk()
######## EITHER THIS
optionMenus = []
strVars = []
for i in range(len(dataMatrix)):
strVars.append(tk.StringVar(mainWindow, dataMatrix[i][0]))
#variable containing currently selected value in i-th row, initialised to first element
optionMenus.append(tk.OptionMenu(mainWindow, strVars[-1], *dataMatrix[i])) #drop-down list for i-th row
optionMenus[-1].grid(row = 0, column = i) #placing i-th OptionMenu in window
######## OR THIS
for r in range(len(dataMatrix)):
for c in range(len(dataMatrix[r])):
b = tk.Button(mainWindow, text = dataMatrix[r][c], width = 10)
#creating button of width 10 characters
b.grid(row = r, column = c)
一般infohost.nmt.edu和effbot.org是学习tkinter的最佳资源。
【讨论】: