Python tkinter 강좌 : 제 29강 - Sizegrip

Python tkinter Sizegrip

Python tkinter 강좌 : 제 29강 - Sizegrip
[ Python-Tkinter ] - 윤대희

Sizegrip(크기 조절)


1 Sizegrip을 이용하여 위젯의 크기를 조절할 수 있는 크기 조절를 생성할 수 있습니다.



Sizegrip 사용


import tkinter
import tkinter.ttk

window=tkinter.Tk()
window.title("YUN DAE HEE")
window.geometry("640x400+100+100")
window.resizable(False, False)

def Drag(event):

    x=sizegrip.winfo_x()+event.x
    y=sizegrip.winfo_y()+event.y
    sz_width=sizegrip.winfo_reqwidth()
    sz_height=sizegrip.winfo_reqheight()

    text["width"]=x-sz_width
    text["height"]=y-sz_height

    if x >= sz_width and y >= sz_height and x < window.winfo_width() and y < window.winfo_height():
        text.place(x=0, y=0, width=x, height=y)
        sizegrip.place(x=x-sz_width, y=y-sz_height)

text=tkinter.Text(window)
text.place(x=0, y=0)

sizegrip=tkinter.ttk.Sizegrip(window)
sizegrip.place(x=text.winfo_reqwidth()-sizegrip.winfo_reqwidth() , y=text.winfo_reqheight()-sizegrip.winfo_reqheight() )
sizegrip.bind("<B1-Motion>", Drag)

window.mainloop()


import tkinter.ttk


상단에 import tkinter.ttk를 사용하여 ttk 모듈을 포함시킵니다.

tkinter.ttk 함수의 사용방법은 tkinter.ttk.*를 이용하여 사용이 가능합니다.


def Drag(event):

    x=sizegrip.winfo_x()+event.x
    y=sizegrip.winfo_y()+event.y
    sz_width=sizegrip.winfo_reqwidth()
    sz_height=sizegrip.winfo_reqheight()

    text["width"]=x-sz_width
    text["height"]=y-sz_height

    if x >= sz_width and y >= sz_height and x < window.winfo_width() and y < window.winfo_height():
        text.place(x=0, y=0, width=x, height=y)
        sizegrip.place(x=x-sz_width, y=y-sz_height)

text=tkinter.Text(window)
text.place(x=0, y=0)

sizegrip=tkinter.ttk.Sizegrip(window)
sizegrip.place(x=text.winfo_reqwidth()-sizegrip.winfo_reqwidth() , y=text.winfo_reqheight()-sizegrip.winfo_reqheight() )
sizegrip.bind("<B1-Motion>", Drag)

tkinter.ttk.Sizegrip(윈도우 창, 파라미터1, 파라미터2, 파라미터3, ...)을 사용하여 크기 조절의 속성을 설정할 수 있습니다.

파라미터를 사용하여 크기 조절의 속성을 설정합니다.

마우스 포인터의 위치와 위젯의 크기에 대한 정보를 활용하여 위젯의 크기를 조절 할 수 있습니다.

winfo_*를 활용하여 위젯에 대한 정보를 확인할 수 있습니다.

x 변수y 변수는 마우스로 크기를 조절할 때 해당 위젯의 좌표를 의미합니다.

sz_width 변수sz_height 변수는 크기 조절 위젯의 실제 크기를 의미합니다.

if문을 활용하여 위젯의 크기를 조절할 때 윈도우 창을 벗어나지 않게 설정합니다.

sizegrip.place()의 좌표를 변경하여 위젯의 내부가 아닌 위젯의 외부로 위치를 이동시킬 수 있습니다.



winfo_ Method


이름 의미 속성
winfo_atom(“문자열 식별자”) 식별자 부여 해당 위젯의 정수 식별자를 부여
winfo_atomname(정수 식별자) 식별자 반환 해당 위젯의 문자열 식별자를 확인
winfo_cells() 컬러맵 반환 해당 위젯의 컬러맵 셀의 수 반환
winfo_children() 하위 위젯 반환 해당 위젯에 포함되어 있는 하위 위젯들을 반환
winfo_class() 클래스 명 반환 해당 위젯의 클래스 명을 반환
winfo_colormapfull() 컬러맵 확인 해당 위젯에 컬러맵이 포함되어있다면 참 값 반환
winfo_containing(x, y) 경로 이름 반환 해당 위젯에 x, y 위치의 위젯 경로 이름을 반환
winfo_depth() 비트 깊이 반환 해당 위젯의 비트 깊이를 반환
winfo_exists() 존재 여부 반환 해당 위젯이 존재한다면 참 값 반환
winfo_fpixels(화소) 화소 값 반환 해당 위젯의 화소 부동 소수점 값 반환
winfo_geometry() 위젯 설정 반환 해당 위젯의 width x height + x + y 형식의 위젯 설정 반환
winfo_width() 위젯 너비 반환 해당 위젯의 너비 반환
winfo_height() 위젯의 높이 반환 해당 위젯의 높이 반환
winfo_id() 고유 식별자 반환 해당 위젯의 16진수 고유 식별자 반환
winfo_interps() 디스플레이 인터프리터 반환 해당 위젯에 대한 디스플레이 Tcl 인터프리터 이름 반환
winfo_ismapped() 매핑 반환 해당 위젯이 매핑되어있다면 참 값 반환
winfo_manager() 지오메트리 매니저 이름 반환 해당 위젯의 지오메트리 매니저의 값을 반환
winfo_name() 위젯 이름 반환 해당 위젯의 이름 반환
winfo_parent() 상위 위젯 반환 해당 위젯의 상위 위젯 이름을 반환
winfo_pathname(id) 경로 이름 반환 해당 id의 위젯의 경로 이름 반환
winfo_pixel(화소) 화소 값 반환 해당 위젯의 화소 정수 값 반환
winfo_pointerx() 마우스 포인터 x 값 반환 해당 위젯에서 마우스 포인터 x 좌표 값 반환
winfo_pointery() 마우스 포인터 y 값 반환 해당 위젯에서 마우스 포인터 y 좌표 값 반환
winfo_pointerxy() 마우스 포인터 (x, y) 값 반환 해당 위젯에서 마우스 포인터 (x, y) 좌표 값 반환
winfo_reqwidth() 위젯 너비 반환 해당 위젯의 요청된 너비 반환
winfo_reqheight() 위젯 높이 반환 해당 위젯의 요청된 높이 반환
winfo_rgb(color) (r, g, b) 반환 color에 해당하는 (r, g, b) 값 반환
winfo_rootx() 위젯 좌측 상단 x 값 반환 해당 위젯의 좌측 상단 x 좌표 값 반환
winfo_rooty() 위젯 좌측 상단 y 값 반환 해당 위젯의 좌측 상단 y 좌표 값 반환
winfo_screen() 위젯 화면 이름 반환 해당 위젯의 화면 이름 반환
winfo_screencells() 위젯 화면 픽셀 수 반환 해당 위젯의 화면 픽셀 수 반환
winfo_screendepth() 위젯 화면 픽셀 깊이 반환 해당 위젯의 화면 깊이 반환
winfo_screenmmwidth() 위젯 화면 너비 반환 해당 위젯의 화면 너비 반환
winfo_screenmmheight() 위젯 화면 높이 반환 해당 위젯의 화면 높이 반환
winfo_screenvisual() 위젯 화면 색상 모델 반환 해당 위젯의 화면 색상 모델 반환
winfo_server() 윈도우 서버 정보 반환 해당 위젯의 서버 (1)버전 (2)개정 번호 (3)공급 업체 (4)서버 릴리즈 번호를 반환
winfo_toplevel() 최상위 위젯 반환 해당 위젯의 최상위 위젯 반환
winfo_viewable() 위젯 매핑 여부 반환 해당 위젯이 최상위 윈도우 까지 매핑되어있다면 참 값 반환
winfo_visual() 위젯 색상 모델 반환 해당 위젯의 색상 모델 반환
winfo_visualid() 비주얼 식별자 반환 해당 위젯의 비주얼 식별자 반환
winfo_visualsavailable() 비주얼 목록 확인 해당 위젯에서 사용할 수 있는 모든 비주얼 목록 확인
winfo_vrootwidth() 위젯 가상 루트 너비 반환 해당 위젯의 가상 루트 너비 반환
winfo_vrootheight() 위젯 가상 루트 높이 반환 해당 위젯의 가상 루트 높이 반환
winfo_x() 위젯 좌측 상단 x 값 반환 해당 위젯의 부모에서 좌측 상단 x 좌표 값 반환
winfo_height() 위젯 좌측 상단 y 값 반환 해당 위젯의 부모에서 좌측 상단 y 좌표 값 반환


  • 화소 형식 : “1i”, “2.0c”
  • r, g, b 범위 : 0~65535
  • 색상 모델 반환 값 : truecolor, staticgray, staticcolor, pseudocolor, grayscale, directcolor



Sizegrip Parameter


크기 조절 형식 설정

이름 의미 기본값 속성
cursor 크기 조절의 마우스 커서 모양 - 커서 속성
class_ 클래스 설정 - -



크기 조절 동작 설정

이름 의미 기본값 속성
takefocus Tab 키를 이용하여 위젯 이동 허용 여부 False Boolean



참고


  • 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


Book Image

개정판이 출간됐습니다!

C#과 파이썬을 활용한 OpenCV 4 프로그래밍 (개정판)

컴퓨터 비전 기초 이론부터 머신러닝을 활용한 영상 처리 프로젝트까지

  • C#과 파이썬용 OpenCV의 데이터 형식과 행렬 및 배열 연산
  • 이미지/동영상/카메라를 활용한 입출력과 결과 저장
  • 전처리 과정과 정보를 탐색하기 위한 이미지 변형
  • 유의미한 정보를 검출하기 위한 이미지 변환
  • 이미지에서 정보를 검출 및 인식
  • 객체 검출을 포함한 모션 추적
  • K-means, KNN, SVM 등의 머신러닝 알고리즘 적용 방법
  • 카페(Caffe), 다크넷(Darknet), 텐서플로 모델을 활용한 딥러닝 모듈 적용 방법
  • Tesseract-OCR과 C# OpenCvSharp4를 활용한 프로젝트
  • 텐서플로와 Python OpenCV4를 활용한 프로젝트
  • 윤대희 저 | 위키북스

    [yes24 바로가기] [알라딘 바로가기] [교보문고 바로가기]

    후원하기


    ⤧  Previous post Python tkinter 강좌 : 제 28강 - Notebook ⤧  Next post Python tkinter 강좌 : 제 30강 - Treeview
    Python-Tkinter Category