вставить в дерево - PullRequest
       3

вставить в дерево

0 голосов
/ 01 августа 2020

в этом сегменте кода я создал дерево просмотра в виде дерева, при нажатии кнопки «Сохранить» содержимое записей вставляется в дерево, но когда я нажимаю эту кнопку, ничего не происходит! , и когда я прокручиваю вниз, последние три элемента не отображались в дереве

        self.tree=ttk.Treeview(data, columns=(1, 2, 3, 4, 5, 6, 7), show='headings',height=10)
        self.tree.pack(side='left')
        self.tree.place(x=0, y=0)
        
        self.tree.heading(1, text='ID')
        self.tree.heading(2, text='first name')
        self.tree.heading(3, text='last name')
        self.tree.heading(4, text='age')
        self.tree.heading(5, text='gender')
        self.tree.heading(6, text='email')
        self.tree.heading(7, text='salary')

        cursor=self.getInfofromDB()
        for i in cursor:
            print(i)
            self.tree.insert('', 'end',  value=i)

        #set the width of the columns
        self.tree.column(1, width=50)
        self.tree.column(2, width=200)
        self.tree.column(3, width=200)
        self.tree.column(4, width=125)
        self.tree.column(5, width=135)
        self.tree.column(6, width=250)
        self.tree.column(7, width=130)



        #create a vertical scrollbar
        yscrollbar=ttk.Scrollbar(data, orient='vertical',
                                 command=self.tree.yview)
        yscrollbar.pack(side='right', fill='y')


        self.tree.configure(yscrollcommand=yscrollbar.set)
    def button_save(self):
        #insert to the database
        u.Insert(self.first_name_entry.get(),
                 self.last_name_entry.get(),
                 self.age_entry.get(),
                 self.gender_var.get(),
                 self.email_entry.get(),
                 self.salary_entry.get())
        if self.gender_var==0:
            self.tree.insert('', 'end', values=(self.first_name_entry.get(),
                                                self.last_name_entry.get(),
                                                self.age_entry.get(),
                                                'male',
                                                self.email_entry.get(),
                                                self.salary_entry.get()))
        elif self.gender_var==1:
            self.tree.insert('', 'end', values=(self.first_name_entry.get(),
                                                self.last_name_entry.get(),
                                                self.age_entry.get(),
                                                'female',
                                                self.email_entry.get(),
                                                self.salary_entry.get()))

1 Ответ

1 голос
/ 02 августа 2020

Давайте посмотрим на этот фрагмент кода здесь:

import tkinter as tk

root = tk.Tk()
def p_var():
    print(f'_var is {_var}')
    print(f'_var.get() is {_var.get()}')

_var = tk.IntVar()
_var.set(1)
b = tk.Button(root, text='exampel',
              command = p_var
              )
b.pack()
root.mainloop()

Результат:

_var is PY_VAR0
_var.get() is 1

Итак, как вы могли заметить, _var является экземпляром tkinters IntVar и для получить значение, которое нам нужно, чтобы использовать метод get().

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