파이썬(Python)/tkinter

[Python]tkinter Frame과 Option 값 사용 예제(bg, bd, cursor, height, highlightbackground, highlightcolor, highlightthickness)

끄적끄적아무거나 2021. 12. 18. 09:50
반응형

 

목차

     

     

     

     

    파이썬(Python) 프레임(Frame) 이란?

     

    Frame 위젯(Frame)은 GUI 구성에서 중요한 요소입니다. 건물의 층과 같이 Frame을 사용해서 층을 구성하고 내부를 pack이나 grid를 사용해서 집들을 넣는 식으로 GUI도 구성이 가능 합니다. 

     

    사용 방식은 아래와 같습니다. 

     

    Frame (master,options)

     

    mater는 부모가 되는 윈도우(Window)를 의미합니다. frame 안에 새로운 frame을 넣는 것도 가능 합니다.

    option은 아래와 같습니다. 예제와 함께 하나씩 사용 방법에 대해 알아 보겠습니다.

     

    • bg
    • bd
    • cursor
    • height
    • highligtbackground
    • highlightcolor
    • highlightthickness
    • relief
    • width

     

    우선 예제 코드를 시작하기 전에 frame을 사용한 base 코드를 아래와 같이 작성 했습니다. 여기서 option 값을 사용해서 차이를 비교하겠습니다.

     

    Base 코드>>

    from tkinter import *
    app = Tk()
    
    fr_up = Frame(app)
    fr_up.pack(fill="x")
    
    fr_down = Frame(app)
    fr_down.pack()
    
    btu_0 = Button(fr_up, text="(0, 0)")
    btu_0.grid(column=1, row=0)
    
    btd_0 = Button(fr_down, text="(0, 1)")
    btd_0.grid(column=1, row=0)
    btd_1 = Button(fr_down, text="(0, 2)")
    btd_1.grid(column=2, row=0)
    btd_2 = Button(fr_down, text="(0, 3)")
    btd_2.grid(column=3, row=0)
    
    app.mainloop()

     

    결과>>

     

    주석>>

    5번 라인에 의해 fr_up은 x축을 꽉 채운 frame이고 8번라인에 의해 fr_dwon 은 버튼 주변으로만 frame이 형성되어 있습니다.

     

     

    Tkinter Frame Option: bg, bd

     

    bg : frame의 background 색을 칠합니다.

    bd : frame에 board line을 그리고 두께를 지정 합니다.

     

    원본 코드에서 7번 라인만 아래와 같이 수정 하였습니다.

     

    코드>>

    fr_down = Frame(app, bg="yellow", bd="5")

     

    결과>>

     

     

     

     

     

    Tkinter Frame Option: Cursor

     

    cursor : frame 위에 마우스를 올리면 커서 모양을 변경해줍니다. 

     

    원본 코드에서 7번 라인만 아래와 같이 수정 하였습니다.

     

    코드>>

    fr_down = Frame(app, cursor="dot")

     

    결과>>

    마우스 커서 모양이 변경된 것은 캡쳐가 되지 않아 글로 설명합니다. 마우스를 fr_down 위에 올리자 동그라미 커서가 생겼습니다.

     

     

     

    Tkinter Frame Option: height, highlightcolor, highlightbackground, highlightthickness 

     

    height : frame의 높이, 내부에 button이나 다른 위젯이 있으면 거기에 맞춰서 height이 자동 변형됨

    witdth : frame의 너비, 내부에 button이나 다른 위젯이 있으면 거기에 맞춰서 width가 자동 변형됨

    highlightcolor: frame 을 선택하면 나오는 색상

    highlightbackground: frame 을 선택하지 않으면 나오는 색상 

    highlightthickness : frame 의 두께

     

    원본 코드에서 7번 라인만 아래와 같이 수정 하였습니다.

     

    코드>>

    fr_down = Frame(app,highlightcolor="green", highlightbackground="red", highlightthickness="5")

     

    결과>>

    아래와 같은 결과가 나오고 프레임 선택 여부에 따라 색이 변하지는 않았습니다. 해당 실습 실패원인은 파악하지 못했습니다.

     

     

     

    반응형