Как ввести содержимое таблицы (Treeview) в виджеты tkinter? - PullRequest
0 голосов
/ 08 октября 2018

Я создал таблицу, которая по умолчанию читает файл 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

Это виджеты, где контент должен быть в конечном итоге размещен.

Как всегда, большое спасибоза вашу поддержку!

С уважением,

Алекс

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...