0
感謝您花時間看看這個。我一直在爲此奮鬥了近一個星期,這讓我瘋狂。Python Tkinter:Paned窗口不能頂到頂部
我有一個水平的Paned窗口,應該從我的工具欄的底部延伸到窗口的底部,但它只粘在根窗口的底部。最終,我想在左側窗格中有一個Treeview
小部件,並在右側窗格中有縮略圖。
任何人都可以幫助我獲得Paned窗口來粘貼NSEW嗎?我需要把它放在另一個框架內嗎?
我使用Python 2.7在Windows 7(這不是我的整個程序,只是一個樣本來證明這個問題。)
#!/usr/bin/env python
# coding=utf-8
from Tkinter import *
from ttk import *
class MainWindow:
def null(self):
pass
def __init__(self):
self.root = Tk()
self.root.geometry("700x300")
self.root.resizable(width=TRUE, height=TRUE)
self.root.rowconfigure(0, weight=1)
self.root.columnconfigure(0, weight=1)
self.menubar = Menu(self.root)
File_menu = Menu(self.menubar, tearoff=0)
self.menubar.add_cascade(label="Pandoras Box", menu=File_menu)
File_menu.add_command(label="Black Hole", command=self.null)
self.root.config(menu=self.menubar)
self.toolbar = Frame(self.root, relief=RAISED)
self.toolbar.grid(row=0, column=0, sticky='NEW')
self.toolbar.grid_columnconfigure(0, weight=1)
self.toolbar.rowconfigure(0, weight=1)
dummy = Button(self.toolbar, text="Tool Button")
dummy.grid(row=0, column=0, sticky='EW')
Find = Label(self.toolbar, text="Search")
Search = Entry(self.toolbar)
Find.grid(row=0, column=5, sticky='E', padx=6)
Search.grid(row=0, column=6, sticky='E', padx=8)
self.info_column = Frame(self.root, relief=RAISED, width=100)
self.info_column.grid(row=0, column=5, rowspan=3, sticky='NSW')
self.info_column.grid_rowconfigure(0, weight=1)
self.info_column.grid_columnconfigure(0, weight=1)
self.rootpane = PanedWindow(self.root, orient=HORIZONTAL)
self.rootpane.grid(row=1, column=0, sticky='NS')
self.rootpane.grid_rowconfigure(0, weight=1)
self.rootpane.grid_columnconfigure(0, weight=1)
self.leftpane = Frame(self.rootpane, relief=RAISED)
self.leftpane.grid(row=0, column=0, sticky='NSEW')
self.rightpane = Frame(self.rootpane, relief=RAISED)
self.rightpane.grid(row=0, column=0, sticky='NSEW')
''' THESE BUTTONS ARE SUPPOSED TO BE INSIDE PANED WINDOW STUCK TO THE TOP!'''
but_left = Button(self.leftpane, text="SHOULD BE IN LEFT PANE UNDER TOOLBAR FRAME")
but_left.grid(row=0, column=0, sticky='NEW')
but_right = Button(self.rightpane, text="SHOULD BE IN RIGHT PANE UNDER TOOLBAR FRAME")
but_right.grid(row=0, column=0, sticky='NEW')
self.rootpane.add(self.leftpane)
self.rootpane.add(self.rightpane)
self.SbarMesg = StringVar()
self.label = Label(self.root, textvariable=self.SbarMesg, font=('arial', 8, 'normal'))
self.SbarMesg.set('Status Bar:')
self.label.grid(row=3, column=0, columnspan=6, sticky='SEW')
self.label.grid_rowconfigure(0, weight=1)
self.label.grid_columnconfigure(0, weight=1)
self.root.mainloop()
a = MainWindow()
非常感謝您抽出寶貴時間來幫助我,我真的很感激。我注意到,當我註釋根行窗口的行配置時,事情會發生在頂部,但是另一個方向則是一個問題。所以我把行配置到處看看它是否工作。另外你的關於背景顏色的提示是一個好主意。謝謝 – sdproto
只是一個快速跟進問題。你在rowconfigure中改變的那個「1」是什麼意思?增加它有什麼作用? (除了解決我的問題)。 – sdproto
不客氣。 「1」是行的索引(http://infohost.nmt.edu/tcc/help/pubs/tkinter/web/grid-config.html),您希望將其拉伸(第二行) 。以前,使用「0」使第一行可拉伸。 – Josselin