2017-07-19 22 views
2

私は、現在入手しているレイアウトと、GUIの上部フレームに配置するレイアウトを示す下に2枚の写真を貼り付けました。は、のフレームとボトムフレームを無視します。できるだけコードを短くするために、残りのコードを内部に含めていません。 Current LayoutLayout that I wantPython Tkinterレイアウト管理

左上の画像=レイアウトです。右の画像=必要なレイアウト

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

GUIを意味のあるセクションに分け、それぞれのフレームを作成することで、tkinterのウィジェットをより簡単に整列させることができます。アライメントが各サブフレームで簡単になるまで、この操作を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