2017-07-19 104 views
2

我附上了两张图片,下面显示了我目前正在获取的布局以及我想要在GUI顶部框架中布局的布局,忽略了中框和底框的。为了尽可能缩短代码,我没有在其中包含代码。 Current LayoutLayout that I wantPython Tkinter布局管理

Picture on Left = Layout我得到了。右=布局图像我需要

from Tkinter import * 

root= Tk() 
topFrame = Frame(root,bg="grey") 
topFrame.pack() 
midFrame = Frame(root,bg="lightblue",borderwidth=2,relief=GROOVE) 
midFrame.pack() 
bottomFrame= Frame(root,bg="lightgreen") 
bottomFrame.pack(side=BOTTOM) 

label1 = Label(topFrame, text="Upload Acitivity File:") 
label1.pack(padx=5, pady=10) 
first_button=Button(topFrame,text="Button 1") 
first_button.pack() 



label2 = Label(topFrame, text="Select the Activity") 
label2.pack(padx=5,pady=10,side=LEFT) 

b1 = Radiobutton(topFrame, text="Walking",value=1) 
b1.pack(padx=5, pady=10,side=LEFT) 
b2 = Radiobutton(topFrame, text="Running",value=2) 
b2.pack(padx=10, pady=10) 

root.mainloop() 

回答

2

在Tkinter的对齐窗口小部件可以通过将GUI成有意义的区段,并创建用于每一个帧进行容易得多。您可以重复此操作multiple times,直到在每个子帧中对齐为简单。

import Tkinter as tk 

root = tk.Tk() 

# Create two frames on top of each other (bg color can help debugging) 
frame1 = tk.Frame(root, bg="yellow") 
frame2 = tk.Frame(root, bg="blue") 
frame1.pack(side=tk.TOP) 
frame2.pack(side=tk.TOP) 

# Place label1 and button1 side-by-side in frame1 
label1 = tk.Label(frame1, text="Upload Activity File:") 
label1.pack(side=tk.LEFT) 
button1 = tk.Button(frame1,text="Button 1") 
button1.pack(side=tk.LEFT) 

# Place label2, b1 and b2 side-by-side in frame2 
label2 = tk.Label(frame2, text="Select the Activity") 
label2.pack(side=tk.LEFT) 
b1 = tk.Radiobutton(frame2, text="Walking", value=1) 
b1.pack(side=tk.LEFT) 
b2 = tk.Radiobutton(frame2, text="Running", value=2) 
b2.pack(side=tk.LEFT) 

root.mainloop() 

Screenshot