Reputation: 17
in this segment of code i created a treeview tree, when the button save is clicked the content of the entries are insert to the tree ,but when i click this button nothing done! ,and when i scroll down the last three items didn't show on the tree
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()))
Upvotes: 0
Views: 103
Reputation: 8037
Let's have a look on this bit of code here:
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()
The Output of this is:
_var is PY_VAR0
_var.get() is 1
So as you may notice, the _var is an instance of tkinters IntVar
and to get the value we need to use the method get()
.
Upvotes: 1