Python tkinter 강좌 : 제 28강 - Notebook

Python tkinter Notebook

Python tkinter 강좌 : 제 28강 - Notebook
[ Python-Tkinter ] - 윤대희

Notebook(탭 메뉴)


1 Notebook을 이용하여 페이지를 나눌 수 있는 탭 메뉴를 생성할 수 있습니다.



Notebook 사용


import tkinter
import tkinter.ttk

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

notebook=tkinter.ttk.Notebook(window, width=300, height=300)
notebook.pack()

frame1=tkinter.Frame(window)
notebook.add(frame1, text="페이지1")

label1=tkinter.Label(frame1, text="페이지1의 내용")
label1.pack()

frame2=tkinter.Frame(window)
notebook.add(frame2, text="페이지2")

label2=tkinter.Label(frame2, text="페이지2의 내용")
label2.pack()

frame3=tkinter.Frame(window)
notebook.add(frame3, text="페이지4")

label3=tkinter.Label(frame3, text="페이지4의 내용")
label3.pack()

frame4=tkinter.Frame(window)
notebook.insert(2, frame4, text="페이지3")

label4=tkinter.Label(frame4, text="페이지3의 내용")
label4.pack()

window.mainloop()


import tkinter.ttk


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

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


notebook=tkinter.ttk.Notebook(window, width=300, height=300)
notebook.pack()

frame1=tkinter.Frame(window)
notebook.add(frame1, text="페이지1")

label1=tkinter.Label(frame1, text="페이지1의 내용")
label1.pack()

frame2=tkinter.Frame(window)
notebook.add(frame2, text="페이지2")

label2=tkinter.Label(frame2, text="페이지2의 내용")
label2.pack()

frame3=tkinter.Frame(window)
notebook.add(frame3, text="페이지4")

label3=tkinter.Label(frame3, text="페이지4의 내용")
label3.pack()

frame4=tkinter.Frame(window)
notebook.insert(2, frame4, text="페이지3")

label4=tkinter.Label(frame4, text="페이지3의 내용")
label4.pack()

tkinter.ttk.Notebook(윈도우 창, 파라미터1, 파라미터2, 파라미터3, ...)을 사용하여 탭 메뉴의 속성을 설정할 수 있습니다.

파라미터를 사용하여 탭 메뉴의 속성을 설정합니다.

프레임을 이용하여 탭 페이지를 설정할 수 있습니다.



Notebook Method


탭 메뉴 메소드

이름 의미 설명
add(frame, option) 페이지 추가 탭 메뉴의 페이지를 추가
insert(tabname, frame, option) 페이지 삽입 탭 메뉴의 tabname 위치에 페이지를 추가
forget(tabname) 페이지 삭제 탭 메뉴의 tabname 페이지를 삭제
hide(tabname) 페이지 숨김 탭 메뉴의 tabname 페이지를 숨김
select(tabname) 페이지 선택 탭 메뉴의 tabname 페이지를 선택
index(tabname) 페이지 위치 반환 탭 메뉴의 tabname 페이지의 위치를 반환
tab(tabname) 페이지 설정 반환 탭 메뉴의 tabname 페이지의 설정을 반환
tabs() 페이지 반환 탭 메뉴의 페이지 tabname 반환
enable_traversal() 키 바인딩 허용 탭 메뉴의 키 바인딩을 허용
  • tabname : index로 사용하거나, frame 위젯의 변수 이름으로 사용
  • current : 현재 선택된 탭 페이지의 메뉴, (문자열)
  • end : 탭 메뉴의 탭 페이지 개수, (문자열)


  • enable_traversal()

    • Ctrl + Tab 을 이용하여 다음 페이지로 이동 가능
    • Shift + Ctrl + Tab을 이용하여 이전 페이지로 이동 가능



탭 메뉴 Option

이름 의미 속성
text 탭 페이지에 표시할 문자열 문자열
underline 탭 페이지의 문자열 중 index에 해당되는 문자에 밑줄 표시 상수
sticky 탭 페이지의 할당된 공간 내에서의 위치 조정 n, e, w, s, ne, nw, se, sw
state 탭 페이지의 상태 설정 normal, disabled, hidden
image 탭 페이지에 포함할 임의 이미지 -
compound 탭 페에지에 문자열과 이미지를 동시에 표시할 때 이미지의 위치 none, center, left, right, top, bottom



Notebook Parameter


탭 메뉴 형태 설정

이름 의미 기본값 속성
width 탭 메뉴의 너비 0 상수
height 탭 메뉴의 높이 0 상수
padding 탭 메뉴의 여백 0 상수



탭 메뉴 형식 설정

이름 의미 기본값 속성
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# OpenCvSharp4
  • Python OpenCV4
  • Using Tesseract
  • Using TensorFlow
  • Using Regular Expression
  • 윤대희 저 | 위키북스

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

    후원하기


    ⤧  Previous post Python tkinter 강좌 : 제 27강 - Progressbar ⤧  Next post Python tkinter 강좌 : 제 29강 - Sizegrip
    Python-Tkinter Category