使用Tkinter将CSV导入Python列表框

时间:2017-05-26 11:27:39

标签: python csv user-interface tkinter

如何将CSV导入列表框?我希望CSV数据进入下面的列表框,而不是文本,是否有Python文件命令可以让我这样做?

class RequestGUI():

    lblStatus = Label(root, text = 'Status')
    lblStatus.place(x =6, y =5)

    lblFacName = Label(root, text = 'Facility Name')
    lblFacName.place(x =150, y =5)

    lblDWGTitle = Label(root, text = 'Title')
    lblDWGTitle.place(x =525, y =5)

    colStatus = Listbox(root, height = 12, width =6)
    colStatus.place(x = 6, y = 32)
    colStatus.insert(END, " IN")

    colFacName = Listbox(root, height = 12, width =45)
    colFacName.place(x = 56, y = 32)
    colFacName.insert(END, " NW WASHINGTON")

    colDWGTitle = Listbox(root, height = 12, width =72)
    colDWGTitle.place(x = 340, y = 32)
    colDWGTitle.insert(END, " CAPACITOR VOLTAGE")

1 个答案:

答案 0 :(得分:1)

import tkinter as tk # from tkinter import * is bad, don't do this!

class RequestGUI():
    def __init__(self, root):
        self.lblStatus = tk.Label(root, text = 'Status')
        self.lblStatus.place(x =6, y =5)

        self.lblFacName = tk.Label(root, text = 'Facility Name')
        self.lblFacName.place(x =150, y =5)

        self.lblDWGTitle = tk.Label(root, text = 'Title')
        self.lblDWGTitle.place(x =525, y =5)

        self.colStatus = tk.Listbox(root, height = 12, width =6)
        self.colStatus.place(x = 6, y = 32)

        self.colFacName = tk.Listbox(root, height = 12, width =45)
        self.colFacName.place(x = 56, y = 32)

        self.colDWGTitle = tk.Listbox(root, height = 12, width =72)
        self.colDWGTitle.place(x = 340, y = 32)

        self.add_row(tk.END, (" IN", " NW WASHINGTON", " CAPACITOR VOLTAGE"))

    def add_row(self, index, rowdata): # will throw indexerror if not enough data is supplied
        self.colStatus.insert(index, rowdata[0])
        self.colFacName.insert(index, rowdata[1])
        self.colDWGTitle.insert(index, rowdata[2])

if __name__ == '__main__':
    win = tk.Tk()
    gui = RequestGUI(win)
    win.mainloop()

所以现在你有了一个函数,你可以传递该rown上的数据元组,这将添加到列表框中。因此,您可以简单地对csv文件中的每一行进行迭代,并使用行数据

调用该函数