Я создал таблицу, которая по умолчанию читает файл 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]}')
Содержание 'lineselection':
{'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
Это виджеты, где контент должен быть в конечном итоге размещен.
Как всегда, большое спасибоза вашу поддержку!
С уважением,
Алекс