这里主要讲讲layout的问题,一般都知道,一是pack,另一个是grid,但是有时候运行时得到的结果并不是自己设计的,这里记录下学习的过程。
1. pack
pack在对齐时, 有LEFT, BOTTOM, RIGHT, TOP,这是对当前的frame说的,如果控件多了,就得增加sub frame来更精细的控制,给个例子。
from Tkinter import *
class Example(Frame):
def __init__(self, master = None):
Frame.__init__(self, master)
self.initUI()
def initUI(self):
self.master.title("Review")
self.pack(fill=BOTH, expand=True)
frame1 = Frame(self)
frame1.pack(fill=X)
lbl1 = Label(frame1, text="Title", width=6)
lbl1.pack(side=LEFT, padx=5, pady=5)
entry1 = Entry(frame1)
entry1.pack(fill=X, padx=5, expand=True)
frame2 = Frame(self)
frame2.pack(fill=X)
lbl2 = Label(frame2, text="Author", width=6)
lbl2.pack(side=LEFT, padx=5, pady=5)
entry2 = Entry(frame2)
entry2.pack(fill=X, padx=5, expand=True)
frame3 = Frame(self)
frame3.pack(fill=BOTH, expand=True)
lbl3 = Label(frame3, text="Review", width=6)
lbl3.pack(side=LEFT, anchor=N, padx=5, pady=5)
txt = Text(frame3)
txt.pack(fill=BOTH, pady=5, padx=5, expand=True)
def main():
root = Tk()
root.geometry("300x300+300+300")
app = Example(root)
root.mainloop()
if __name__ == '__main__':
main()
pass
|