2016-09-27 77 views
0

所以我創建了一個GUI,我基本上想要在GUI的頂部有兩個不同的「工具欄」,類似於this
目前,我爲每個工具欄分別放置了兩個不同的按鈕,分別稱爲工具欄和選擇欄。每個按鈕上我叫.pack()工具欄內設置它們的格式,然後將每個工具欄上的我叫
toolbar.grid(row=0, column=0, sticky='NW')
​​
不過,我不相信這是正確的,因爲他們是兩個不同的「網格」它試圖放在各自的欄目中。它仍然給我一些接近所需產品的東西:this。但是,我想知道如何將這兩個框架「組合」到一個更大的相應框架中,以便我可以使用.configurecolumn(0, weight=1)來獲得第一個工具欄沿着屏幕向外伸展。Tkinter格式化多個相鄰的幀

從本質上講,我想知道如何讓這兩個「工具欄」彼此相鄰,但是第一個工具欄與空白空間一樣。

編輯:這裏是部分省略的代碼。

from tkinter import * 
    from MenuBar import * 
    from ToolBar import * 
    import tkinter.ttk 

class App(Tk): 
def __init__(self): 
    Tk.__init__(self) 


    #Creates the MenuBar 
    menubar = MenuBar(self) 
    self.config(menu=menubar) 

    #Creates the ToolBar 
    toolbar = Frame(bg="#f2f2f2", bd=1, relief=RAISED, width=1000) 

    newUndIcon = itk.PhotoImage(file="Icons/newUndirected.png") 
    newDirIcon = itk.PhotoImage(file="Icons/newDirected.png") 
    b0 = Button(toolbar, text="Create a new undirected graph", image=newUndIcon, relief=FLAT) 
    b1 = Button(toolbar, text="Create a new directed graph", image=newDirIcon, relief=FLAT) 
    b2 = Button(toolbar, text="Open an existing graph", image=openIcon, relief=FLAT) 
    b3 = Button(toolbar, text="Save graph", image=saveIcon, relief=FLAT) 
    b0.img = newUndIcon 
    b1.img = newDirIcon 
    b2.img = openIcon 
    b3.img = saveIcon 
    b0.pack(side=LEFT, padx=2, pady=2) 
    b1.pack(side=LEFT, padx=2, pady=2) 
    b2.pack(side=LEFT, padx=2, pady=2) 
    b3.pack(side=LEFT, padx=2, pady=2)  

    #toolbar.pack(side=TOP, fill=X) 
    toolbar.grid(row=0, sticky='NW') 
    toolbar.columnconfigure(1, weight=1) 

    selectBar = Frame(bg="#f2f2f2", bd=1, relief=FLAT) 
    c0 = Button(selectBar, image=newUndIcon, relief=FLAT) 
    c1 = Button(selectBar, image=newDirIcon, relief=FLAT) 
    c2 = Button(selectBar, image=vertexIcon, relief=FLAT) 

    c0.img = newUndIcon 
    c1.img = newDirIcon 
    c2.img = vertexIcon 

    c0.pack(side=LEFT, padx=2, pady=2) 
    c1.pack(side=LEFT, padx=2, pady=2) 
    c2.pack(side=LEFT, padx=2, pady=2) 

    selectBar.grid(row=0, column=1, sticky='NW') 
    selectBar.columnconfigure(1, weight=1) 



    app=App() 
    app.iconbitmap('Icons/titleIcon.ico') 
    app.title("GMPX") 
    app.geometry('900x600') 
    app.config(bg="#FFF") 
    app.mainloop() 
    app.destroy() 

回答

1

你可以嘗試把toolbarselectBar一個Frame內,並使用pack()代替grid()

topbar = Frame(self) 
.... 
toolbar = Frame(topbar, ...) 
toolbar.pack(side=LEFT, fill=X, expand=True) 
... 
selectBar = Frame(topbar, ...) 
selectBar.pack(side=RIGHT) 
... 
topbar.pack(fill=X)