반응형
파이썬 위젯 - 프레임(Frame)

   파이썬 프레임은 여러개의 위젯들을 관리하는데 사용됩니다.

  화면에 여러가지의 위젯이 필요할 경우에 하나씩 배치해 두면

나중에 수정을 하거나 다른 프로그램에서 재사용하기가 힘듭니다.

  하지만 이런 위젯들을 프레임에 붙여서 사용하면 이런 어려움을 줄일 수 있습니다.

   일종의 컨테이너와 같다고 생각하시면 됩니다.

 

▶ 프레임 옵션

파이썬 위젯 프레임 옵션

※ 위젯 배치가 주목적이다 보니 여러 프레임을 붙일 경우 프레임 옵션이 제대로 작동되지 않을 수 있습니다.

※ 내부에 위젯이 존재할 경우 width와 height 설정을 무시하고 크기 자동 조절됩니다.

cursor 파라미터

  • arrow, based_arrow_down, based_arrow_up, boat, bogosity, bottom_left_corner, bottom_right_corner, bottom_side, bottom_tee, box_spiral, center_ptr, circle, clock, coffee_mug, cross, cross_reverse, crosshair, diamond_cross, dot, dotbox, double_arrow, draft_large, draft_small, draped_box, exchange, fleur, gobbler, gumby, hand1, hand2, heart, icon, iron_cross, left_ptr, left_side, left_tee, leftbutton, ll_angle, lr_angle, man, middlebutton, mouse, pencil, pirate, plus, question_arrow, right_ptr, right_side, right_tee, rightbutton, rtl_logo, sailboat, sb_down_arrow, sb_h_double_arrow, sb_left_arrow, sb_right_arrow, sb_up_arrow, sb_v_double_arrow, shuttle, sizing, spider, spraycan, star, target, tcross, top_left_arrow, top_left_corner, top_right_corner, top_side, top_tee, trek, ul_angle, umbrella, ur_angle, watch, wait, xterm, X_cursor

 

- 다음과 같이 좌우 2개의 프레임으로 나누고 '안녕하세요' 출력해보세요

파이썬 프레임 위젯

from tkinter import *

win = Tk()
win.title("파이썬 프레임")
win.geometry("500x300")

l_frame=Frame(win, relief="solid", bd=2, background="light green")
l_frame.pack(side="left",fill="both",expand=True)

r_frame=Frame(win, relief="solid", bd=2, background="pink")
r_frame.pack(side="right",fill="both",expand=True)


la1 = Label(l_frame, text="안녕하세요", foreground="red")
la1.pack(side="left")

la2 = Label(l_frame, text="안녕하세요", foreground="blue")
la2.pack(side="right")

la3 = Label(r_frame, text="안녕하세요", foreground="brown")
la3.pack(side="left")

la4 = Label(r_frame, text="안녕하세요", foreground="black")
la4.pack(side="right")

win.mainloop()

 

- 다음과 같이 상하 2개의 프레임으로 나누고 '안녕하세요' 출력해보세요.

파이썬 프레임 위젯

from tkinter import *

win = Tk()
win.title("파이썬 프레임")
win.geometry("500x300")

l_frame=Frame(win, relief="solid", bd=2, background="light green")
l_frame.pack(side="top",fill="both",expand=True)

r_frame=Frame(win, relief="solid", bd=2, background="pink")
r_frame.pack(side="bottom",fill="both",expand=True)


la1 = Label(l_frame, text="안녕하세요", foreground="red")
la1.pack(side="left")

la2 = Label(l_frame, text="안녕하세요", foreground="blue")
la2.pack(side="right")

la3 = Label(r_frame, text="안녕하세요", foreground="brown")
la3.pack(side="left")

la4 = Label(r_frame, text="안녕하세요", foreground="black")
la4.pack(side="right")

win.mainloop()

 

- 다음과 같이 3개의 프레임으로 나누고 '안녕하세요' 출력해보세요.

from tkinter import *

win = Tk()
win.title("파이썬 프레임")
win.geometry("500x300")

l_frame=Frame(win, relief="solid", bd=2, background="light green", cursor = "coffee_mug")
l_frame.pack(side="top",fill="both",expand=True)

r_frame=Frame(win, relief="solid", bd=2, background="light pink", cursor = "boat")
r_frame.pack(side="left",fill="both",expand=True)

r2_frame=Frame(win, relief="solid", bd=2, background="light blue", cursor = "cross")
r2_frame.pack(side="right",fill="both",expand=True)


la1 = Label(l_frame, text="안녕하세요", foreground="red")
la1.pack(side="left")

la2 = Label(l_frame, text="안녕하세요", foreground="blue")
la2.pack(side="right")

la3 = Label(r_frame, text="안녕하세요", foreground="brown")
la3.pack(side="left")

la4 = Label(r_frame, text="안녕하세요", foreground="black")
la4.pack(side="right")

la5 = Label(r2_frame, text="안녕하세요", foreground="brown")
la5.pack(side="top")

la6 = Label(r2_frame, text="안녕하세요", foreground="black")
la6.pack(side="bottom")

win.mainloop()
반응형
Posted by 명문코딩컴퓨터
,