Tkinter 창

2024. 2. 14. 19:32GUI/tkinter

요약 : 이 튜토리얼에서는 Tkinter 창의 다양한 속성을 조작하는 방법을 배웁니다.

창으로 구성된 간단한 프로그램부터 시작해 보겠습니다.

In [ ]:
import tkinter as tk

root = tk.Tk()
root.mainloop()

루트 창의 제목은 기본적으로 tk. 또한 최소화, 최대화 및 닫기를 포함한 세 가지 시스템 버튼이 있습니다.

루트 창의 속성을 변경하는 방법을 알아봅시다.

창 제목 변경

창 제목을 변경하려면 다음과 같은 title() 방법을 사용합니다.

window.title(new_title)

예를 들어 다음은 루트 창의 제목을 'Tkinter Window Demo'으로 변경합니다.

In [ ]:
import tkinter as tk

root = tk.Tk()
root.title('Tkinter Window Demo')

root.mainloop()

Output :

 

 

창의 현재 제목을 얻으려면 인수 없이 title() 메서드를 사용합니다.

In [ ]:
title = window.title()

창 크기 및 위치 변경

Tkinter에서 화면의 창 위치와 크기는 기하학 에 따라 결정됩니다 .

다음은 기하학 사양을 보여줍니다.

widthxheight±x±y

 

 

이 사양에서는:

  • width는 창의 너비를 픽셀 단위로 나타냅니다.
  • height는 창의 높이를 픽셀 단위로 나타냅니다.
  • 매개 x변수는 창의 수평 위치를 나타냅니다. 예를 들어 +50 값은 창의 왼쪽 가장자리가 화면 왼쪽 가장자리에서 50픽셀 떨어진 곳에 위치해야 함을 나타냅니다. 반대로 -50 값은 창의 오른쪽 가장자리가 화면의 오른쪽 가장자리에서 50픽셀 떨어져 있어야 함을 나타냅니다.
  • 매개 y변수는 창의 수직 위치를 나타냅니다. 예를 들어, +50 값은 창의 상단 가장자리가 화면 상단에서 50픽셀 아래에 위치해야 함을 나타냅니다. 반대로, -50 값은 창의 아래쪽 가장자리가 화면 아래쪽에서 50픽셀 위에 있어야 함을 나타냅니다.

창의 크기와 위치를 변경하려면 다음 geometry()방법을 사용합니다.

window.geometry(new_geometry)

다음 예에서는 창 크기를 600x400, 창의 위치를 화면 상단과 왼쪽에서 50픽셀로 변경합니다.

In [ ]:
import tkinter as tk


root = tk.Tk()
root.title('Tkinter Window Demo')
root.geometry('600x400+50+50')

root.mainloop()

때로는 창을 화면 중앙에 배치하고 싶을 수도 있습니다. 다음 프로그램은 이를 수행하는 방법을 보여줍니다.

In [ ]:
import tkinter as tk


root = tk.Tk()
root.title('Tkinter Window - Center')

window_width = 300
window_height = 200

# get the screen dimension
screen_width = root.winfo_screenwidth()
screen_height = root.winfo_screenheight()

# find the center point
center_x = int(screen_width/2 - window_width / 2)
center_y = int(screen_height/2 - window_height / 2)

# set the position of the window to the center of the screen
root.geometry(f'{window_width}x{window_height}+{center_x}+{center_y}')


root.mainloop()

작동 방식.

  • 먼저 winfo_screenwidth()와 winfo_screenheight()를 사용하여 화면 너비와 높이를 가져옵니다.
  • 둘째, 화면과 창 너비 및 높이를 기준으로 중심 좌표를 계산합니다.
  • 마지막으로 geometry() 메서드를 사용하여 루트 창의 형상을 설정합니다.

창의 현재 형상을 얻으려면 인수를 제공하지 않고 geometry() 메서드를 사용할 수 있습니다.

In [ ]:
window.geometry()

크기 조정 동작

기본적으로 창의 너비와 높이 크기를 조정할 수 있습니다. 창 크기가 조정되는 것을 방지하려면 다음 resizable()방법을 사용할 수 있습니다.

window.resizable(width,height)

이 resizable()메서드에는 창의 너비와 높이를 크기 조정할 수 있는지 여부를 지정하는 두 개의 매개 변수가 있습니다.

다음은 고정된 크기의 창을 만드는 방법을 보여줍니다.

In [ ]:
import tkinter as tk

root = tk.Tk()
root.title('Tkinter Window Demo')
root.geometry('600x400+50+50')
root.resizable(False, False)

root.mainloop()

Output :

 

 

창 크기를 조정할 수 있으면 minsize()및 maxsize()메서드를 사용하여 최소 및 최대 크기를 지정할 수 있습니다.

window.minsize(min_width, min_height)
window.maxsize(min_height, max_height)

투명도

Tkinter를 사용하면 0.0(완전 투명)에서 1.0(완전 불투명) 범위의 알파 채널을 설정하여 창의 투명도를 지정할 수 있습니다.

window.attributes('-alpha',0.5)

다음 예에서는 50% 투명한 창을 보여줍니다.

In [ ]:
import tkinter as tk

root = tk.Tk()
root.title('Tkinter Window Demo')
root.geometry('600x400+50+50')
root.resizable(False, False)
root.attributes('-alpha', 0.5)

root.mainloop()

창 쌓이는 순서

창 스택 순서는 화면에 배치되는 창의 순서를 아래쪽에서 위쪽으로 나타냅니다. 더 가까운 창은 스택의 맨 위에 있으며 더 낮은 창과 겹칩니다.

창이 항상 쌓인 순서의 맨 위에 있도록 하려면, -topmost 같은 속성을 사용할 수 있습니다.

window.attributes('-topmost', 1)

스택의 창을 위나 아래로 이동하려면 lift()및 lower()메소드를 사용할 수 있습니다.

window.lift()
window.lift(another_window)

window.lower()
window.lower(another_window)

다음 예에서는 루트 창을 다른 모든 창 위에 배치합니다. 즉, 루트 창이 항상 맨 위에 있습니다.

In [ ]:
import tkinter as tk


root = tk.Tk()
root.title('Tkinter Window Demo')
root.geometry('300x200+50+50')
root.resizable(0, 0)
root.attributes('-topmost', 1)

root.mainloop()

기본 아이콘 변경

Tkinter 창에는 기본 아이콘이 표시됩니다. 이 기본 아이콘을 변경하려면 다음 단계를 따르세요.

  • .ico 형식으로 이미지를 준비합니다. png 또는 jpg 같은 다른 형식의 이미지가 있는 경우 .ico 형식으로 변환할 수 있습니다. 이 작업을 매우 쉽게 수행할 수 있는 온라인 도구가 많이 있습니다.
  • 프로그램에서 액세스할 수 있는 폴더에 아이콘을 배치합니다.
  • 창 개체의 iconbitmap() 메서드를 호출합니다.

다음 프로그램은 기본 아이콘을 새 아이콘으로 변경하는 방법을 보여줍니다.

In [ ]:
import tkinter as tk


root = tk.Tk()
root.title('Tkinter Window Demo')
root.geometry('300x200+50+50')
root.resizable(False, False)
root.iconbitmap('./pythontutorial-1.ico')

root.mainloop()

Output :

 
 

 

요약

  • 이 title() 메소드를 사용하여 창 제목을 변경하십시오.
  • 창의 크기와 위치를 변경하려면 geometry() 메서드를 사용하세요.
  • 창 크기를 가로 또는 세로로 조정할 수 있는지 여부를 지정하려면 resizable() 메서드를 사용합니다.
  • 창의 투명도를 설정하려면 window.attributes('-alpha',0.5)를 사용하십시오.
  • 창을 항상 맨 위에 표시하려면 window.attributes('-topmost', 1)를 사용하세요.
  • 창 스택 순서에 따라 창을 위아래로 이동하려면 lift()및 .lower() 메서드를 사용합니다.
  • 이 iconbitmap() 메서드를 사용하여 창의 기본 아이콘을 변경합니다.

출처 : https://www.pythontutorial.net/tkinter/tkinter-window/

 

'GUI > tkinter' 카테고리의 다른 글

Tkinter 명령 바인딩  (0) 2024.02.17
Tk 테마 위젯에 대한 옵션을 설정하는 3가지 방법  (0) 2024.02.16
Ttk 위젯  (0) 2024.02.15
Tkinter 안녕하세요, 월드!  (1) 2024.02.13
tkinter  (1) 2024.02.12