i learned treeview and tried to do this style of code just to try different perspective on how to open treeview and currently i tried to do this type and the treeview does not appear on toplevel and currently this is what i did:
from tkinter import ttk
import tkinter as tk
class setup(tk.Tk):
def __init__(self):
tk.Tk.__init__(self)
self._frame = None
self.switch_frame(mainpage)
def switch_frame(self, frame_class):
"""Destroys current frame and replaces it with a new one."""
new_frame = frame_class(self)
if self._frame is not None:
self._frame.destroy()
self._frame = new_frame
self._frame.place(x=0, y=0, relwidth=1, relheight=1)
class mainpage(tk.Frame):
def __init__(self, master):
tk.Frame.__init__(self,master)
master.geometry("400x400")
treeview = tk.Button(self, text="open treeview", command=lambda: display_treeview()).pack()
class my_treeview(tk.Toplevel):
def __init__(self, tree):
tk.Toplevel.__init__(self)
self.tree = tree
tree = ttk.Treeview()
self.title("this is toplevel for treeview")
self.geometry("600x500")
class display_treeview(ttk.Treeview):
def __init__(self):
ttk.Treeview.__init__(self)
self.insert("", "0", "item1", text="fill width")
self.insert("", "0", "item2", text="fill width")
my_treeview(display_treeview)
if __name__ == "__main__":
app = setup()
app.mainloop()
the last working example i just did this:
from tkinter import ttk
import tkinter as tk
def my_treeview():
mt = tk.Toplevel()
mt.geometry("1000x580")
tree = ttk.Treeview(mt)
tree.insert("", "0", "item1", text="fill width")
tree.insert("", "1", "item2", text="fill height")
tree.pack(fill="both")
root = tk.Tk()
root.geometry("400x400")
treeview = tk.Button(root, text="open treeview", command=my_treeview).pack()
root.mainloop()