我创建了一个表,该表默认情况下读取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
这些是最终应放置内容的小部件。
一如既往,非常感谢您的支持!
最诚挚的问候,
亚历克斯