[英]Scrollbar and resizing won't work with tkinter grid array and treeview
[英]Resizing the treeview manually in tkinter
在這里,我試圖手動向下和向上拖動 sample1 樹視圖(最大化和最小化可見行的數量)。 當我手動向下拖動第一個樹視圖時,第一個樹視圖需要擴展,第二個樹視圖需要最小化。 我們可以在 Tkinter 中做到這一點嗎? 請在這件事上給予我幫助
示例代碼:
import tkinter as tk
import tkinter.ttk as ttk
class Window:
def __init__(self, master):
self.master = master
self.master.geometry('630x500+90+30')
self.button = tk.Button(self.master,height=1,width=11, text="Sample").place(x=0,y=0)
self.label = tk.Label(self.master, text='sample1 ',font=("Algerian", 20,'bold')).grid(row=0,columnspan=3)
cols = ('aa','bb')
self.treeview = ttk.Treeview(self.master, columns=cols)
v_scrollbar = ttk.Scrollbar(self.master, orient='vertical', command=self.treeview.yview)
self.treeview.config( yscrollcommand=v_scrollbar.set)
for col in cols:
self.treeview.heading(col, text=col)
self.treeview.grid(row=1, column=0)
v_scrollbar.grid(row=1, column=1, sticky='nes')
self.label = tk.Label(self.master, text="sample2").grid(row=6, columnspan=3)
ccols = ('aa', 'bb')
self.treeview1 = ttk.Treeview(self.master, columns=ccols)
v_scrollbar1= ttk.Scrollbar(self.master, orient='vertical', command=self.treeview1.yview)
self.treeview1.config( yscrollcommand=v_scrollbar1.set)
for col in ccols:
self.treeview.heading(col, text=col)
self.treeview1.grid(row=8, column=0)
v_scrollbar1.grid(row=8, column=1, sticky='nes')
for i in range(100):
self.treeview.insert('', 'end', value=(i))
def main():
root = tk.Tk()
Window(root)
root.mainloop()
# --- main ---
if __name__ == '__main__':
main()
如果需要任何其他信息,請告訴我。 謝謝
用於此的小部件稱為窗格窗口。 tkinter 和 ttk 都有這樣的小部件。
PanedWindow
工作方式與 ttk Notebook
小部件非常相似。 每個窗格都應該是一個框架,您可以調用add
將框架add
到PanedWindow
。
這是一個帶有兩個Treeview
小部件的簡單示例,每個小部件都有一個Scrollbar
:
import tkinter as tk
import tkinter.ttk as ttk
root = tk.Tk()
pw = ttk.PanedWindow(root, orient="vertical")
pw.pack(fill="both", expand=True)
pane1 = ttk.Frame(pw)
pane2 = ttk.Frame(pw)
pw.add(pane1)
pw.add(pane2)
tree1 = ttk.Treeview(pane1)
sb1 = ttk.Scrollbar(pane1, command=tree1.yview)
tree1.configure(yscrollcommand=sb1.set)
sb1.pack(side="right", fill="y")
tree1.pack(side="right", fill="both", expand=True)
tree2 = ttk.Treeview(pane2)
sb2 = ttk.Scrollbar(pane2, command=tree2.yview)
tree2.configure(yscrollcommand=sb2.set)
sb2.pack(side="right", fill="y")
tree2.pack(side="right", fill="both", expand=True)
root.mainloop()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.