如何在tkinter小部件中输入表格内容(Treeview)?

时间:2018-10-08 11:06:09

标签: python-3.x dictionary tkinter

我创建了一个表,该表默认情况下读取csv文件并显示列。对我来说,下一步是能够选择其中的一行。该行应“复制”到我应该能够对其进行修改的小部件上。

到目前为止,我的代码是:

class Functions:    
    def select_table_content(self, event):

        lineselection = self.treeview.item(self.treeview.selection())

        file_content = "Note.csv"

        with open(file_content, 'r') as line:
            string = next(itertools.islice(csv.DictReader(line), lineselection-1, None))
            for row in string:
                self.title_entry.insert(0, f'{row["values"][0]}')
                self.author_entry.insert(0, f'{row["values"][1]}')
                self.year_entry.insert(0, f'{row["values"][2]}')
                self.others_entry.insert(0, f'{row["values"][3]}')
                self.note_entry.insert("1.0", f'{row["values"][4]}')

“线选择”的内容为:

{'text': '', 'image': '', 'values': ['Seven', 'Spielberg', 1990, 'Thriller'], 'open': 0, 'tags': ''}

这就是为什么我认为'row [“ values”] [n]'可以解决我的问题,但事实并非如此。 错误消息是:

TypeError: unsupported operand type(s) for -: 'dict' and 'int'

更新:

class Frames(Functions):
    def__init__(self):
        self.title_entry = tk.Entry(title_label)
        self.author_entry = tk.Entry(title_label)
        self.year_entry = tk.Entry(title_label)
        self.others_entry = tk.Entry(title_label)
        self.note_entry = tk.Text(bottom_f)
###Widget.pack()
        self.title_entry.pack(side="left", fill="x", expand=True)
        self.author_entry.pack(side="left", fill="x", expand=True)
        self.year_entry.pack(side="left", fill="x", expand=True)
        self.others_entry.pack(side="left", fill="x", expand=True)
        self.note_entry.pack(side="top", fill="both", expand=True

这些是最终应放置内容的小部件。

一如既往,非常感谢您的支持!

最诚挚的问候,

亚历克斯

0 个答案:

没有答案