簡體   English   中英

Python Tkinter 放置框架和 treeview 在筆記本內

[英]Python Tkinter placing frame and treeview within a notebook

我正在研究一個非常簡單的 TKinter 布局。 它由一個帶有兩個選項卡的筆記本組成。 在第一個選項卡中,我有 1 個 Frames,而在其中還有 3 個。 這工作正常,可以在下面看到:

帶 3 相框的筆記本

但是,當我嘗試將 Treeview 添加到最左側的紅色框(混淆地稱為 top_frame)時。 它只是坐在下面。

像下面這樣:

帶樹視圖

我想我有正確的父子關系,所以看不出它為什么不按預期坐着。

歡迎任何幫助。 我的代碼在下面,我需要將 treeview 放入紅色框中的結果。 我花了很長時間試圖解決這個問題,開始在筆記本中使用 grid() 但即使切換到 pack() 仍然沒有運氣

from tkinter import *
from tkinter import ttk

root = Tk()

tabControl = ttk.Notebook(root) 
  
tab1 = ttk.Frame(tabControl) 

tab2 = ttk.Frame(tabControl) 
  
tabControl.add(tab1, text ='Tab 1') 
tabControl.add(tab2, text ='Tab 2') 
tabControl.pack()




top_frame1 = Frame(tab1, bg='red', width = 450, height=400, relief=SUNKEN).pack(side=LEFT, fill = BOTH)
Mid_frame = Frame(tab1, bg='Orange', width = 450, height=100, relief=SUNKEN).pack(side=RIGHT, fill = BOTH)
bottom_frame = Frame(tab1, bg='green', width = 450, height=100, relief=SUNKEN).pack(side=RIGHT, fill = BOTH)

treeview_menu = ttk.Treeview(top_frame1)
treeview_menu.pack()
treeview_menu.insert('','0','m1', text = 'department 1')
treeview_menu.insert('','1','m2', text = 'department 2')
treeview_menu.insert('','2','m3', text = 'department 3')
treeview_menu.insert('','3','m4', text = 'department 4')
treeview_menu.insert('','4','m5', text = 'department 5')

treeview_menu.insert('m1','end','cs1', text = 'Staff Mbr1')
treeview_menu.insert('m1','end','cs2', text = 'Staff Mbr2')

treeview_menu.insert('m2','end','bc1', text = 'Staff Mbr1')
treeview_menu.insert('m2','end','bc2', text = 'Staff Mbr2')

treeview_menu.insert('m3','end','av1', text = 'Staff Mbr1')
treeview_menu.insert('m3','end','av2', text = 'Staff Mbr2')

treeview_menu.insert('m4','end','mc1', text = 'Staff Mbr1')
treeview_menu.insert('m4','end','mc2', text = 'Staff Mbr2')

treeview_menu.insert('m5','end','ss1', text = 'Staff Mbr1')
treeview_menu.insert('m5','end','ss2', text = 'Staff Mbr2')

因為我剛剛遇到這個問題,但仍然沒有一個可以接受的答案。

top_frame1 = Frame(tab1, bg='red', width = 450, height=400, relief=SUNKEN).pack(side=LEFT, fill = BOTH)
Mid_frame = Frame(tab1, bg='Orange', width = 450, height=100, relief=SUNKEN).pack(side=RIGHT, fill = BOTH)
bottom_frame = Frame(tab1, bg='green', width = 450, height=100, relief=SUNKEN).pack(side=RIGHT, fill = BOTH)

.pack 不返回 object。 由於這些都在一行上,因此從未實際設置變量。 因此,bottom_frame、mid_frame 和 top_frame 都返回 None。

必須從 Frame() function 設置變量,然后調用 pack() function。

top_frame1 = Frame(tab1, bg='red', width = 450, height=400, relief=SUNKEN)
top_frame1.pack(side=LEFT, fill = BOTH)
Mid_frame = Frame(tab1, bg='Orange', width = 450, height=100, relief=SUNKEN)
Mid_frame.pack(side=RIGHT, fill = BOTH)
bottom_frame = Frame(tab1, bg='green', width = 450, height=100, relief=SUNKEN)
bottom_frame.pack(side=RIGHT, fill = BOTH)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM