Python Tkinter:.csv中每一行的按钮?

时间:2018-07-09 07:36:16

标签: python database user-interface tkinter

尽我最大的努力学习Tkinter并在每个步骤中惨败。

我正在尝试编写一个GUI,根据我的脚本导入的.csv文件中的行条目,创建一个下拉列表或一个按钮网格。

事实是,两次尝试都如火如荼,因为我对此并不陌生。

任何人都可以将我链接到资源/给我实现所需目标的步骤吗?

1 个答案:

答案 0 :(得分:1)

这是解决方案。下次请粘贴您编写的一些代码,以便我们知道您尝试了什么。

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)

OptionMenu Control Variables

通常infohost.nmt.edueffbot.org是学习tkinter的最佳资源。