티스토리 뷰
Tkinter 리뷰 예제
팩 관리자는 간단한 레이아웃 관리자입니다. 간단한 레이아웃 작업을 수행하는 데 사용할 수 있습니다. 더 복잡한 레이아웃을 만들려면 각각의 팩 관리자가있는 더 많은 프레임을 활용해야합니다.
from tkinter import Tk, Text, TOP, BOTH, X, N, LEFT from tkinter.ttk import Frame, Label, Entry class Example(Frame): def __init__(self): super().__init__() 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.mainloop() if __name__ == '__main__': main()
이 예제는 여러 프레임과 팩 관리자로보다 복잡한 레이아웃을 작성하는 방법을 보여줍니다.
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)
첫 번째 두 위젯은 첫 번째 프레임에 배치됩니다. 항목은 채우기 및 확장 매개 변수로 가로로 확장됩니다.
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)
세 번째 프레임에서 레이블과 텍스트 위젯을 배치합니다. 레이블은 북쪽에 고정되어 있습니다. 텍스트 위젯은 나머지 영역 전체를 차지합니다.
댓글