【发布时间】:2021-12-05 19:45:17
【问题描述】:
我无法弄清楚为什么这段代码不起作用。单击按钮后,我试图在新的顶层窗口中创建树视图。但是当我向树视图添加滚动条时 - 树视图消失(我用滚动条评论部分)。这是代码:
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()
【问题讨论】:
-
您的代码中似乎存在缩进问题。您在
__init__中定义root。 -
另外,您从未真正对新的 Treeview 进行网格化。您是否尝试过使用
new.grid来网格化新的 Treeview?您也将self从Toplevel更改为Treeview,您绝对不应该这样做。与其将self更改为Treeview,不如为其创建一个变量,例如self.treeview = ttk.Treeview(...。 -
好的,但是我该如何解决呢?或者也许我怎样才能用不同的方式创建顶层窗口?
-
你想通过重新定义
self来达到什么目的? -
我不知道我是 tkinter 和 treeview 的新手。
标签: python oop tkinter treeview toplevel