我無法弄清楚為什么此代碼不起作用。單擊按鈕后,我試圖在新的頂層視窗中創建樹視圖。但是當我向樹視圖添加滾動條時 - 樹視圖消失了(我用滾動條注釋了該部分)。這是代碼:
from tkinter import*
class Treeview(Toplevel):
def __init__(self, parent):
super().__init__(parent)
self.title('Contacts List')
self.geometry('1050x527')
columns = ('#1', '#2', '#3', '#4', '#5')
self = ttk.Treeview(self, columns=columns, show='headings')
self.heading('#1', text='Name')
self.heading('#2', text='Birthday')
self.heading('#3', text='Email')
self.heading('#4', text='Number')
self.heading('#5', text='Notes')
self.grid(row=0, column=0, sticky='nsew')
#scrollbar = ttk.Scrollbar(self, orient=VERTICAL, command=self.yview)
#self.configure(yscroll=scrollbar.set)
#scrollbar.grid(row=0, column=1, sticky='ns')
root = Tk()
def tree():
new= Treeview(root)
button7 = ttk.Button(root,text="Contacts", command=tree)
button7.grid(row=1,column=0)
root.mainloop()
uj5u.com熱心網友回復:
您正在重新定義self為ttk.Treeview實體。稍后,當您創建滾動條時,這會導致滾動條成為ttk.Treeview小部件的子項。
你絕對不應該重新定義self. 使用不同的變數,例如tree. 或者更好,使用self.tree以便您可以從其他方法參考樹。
class Treeview(Toplevel):
def __init__(self, parent):
super().__init__(parent)
self.title('Contacts List')
self.geometry('1050x527')
columns = ('#1', '#2', '#3', '#4', '#5')
self.tree = ttk.Treeview(self, columns=columns, show='headings')
self.tree.heading('#1', text='Name')
self.tree.heading('#2', text='Birthday')
self.tree.heading('#3', text='Email')
self.tree.heading('#4', text='Number')
self.tree.heading('#5', text='Notes')
self.tree.grid(row=0, column=0, sticky='nsew')
scrollbar = ttk.Scrollbar(self, orient=VERTICAL, command=self.tree.yview)
self.tree.configure(yscroll=scrollbar.set)
scrollbar.grid(row=0, column=1, sticky='ns')
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/323737.html
