2024. 2. 14. 19:32ㆍGUI/tkinter
요약 : 이 튜토리얼에서는 Tkinter 창의 다양한 속성을 조작하는 방법을 배웁니다.
창으로 구성된 간단한 프로그램부터 시작해 보겠습니다.
import tkinter as tk
root = tk.Tk()
root.mainloop()
루트 창의 제목은 기본적으로 tk. 또한 최소화, 최대화 및 닫기를 포함한 세 가지 시스템 버튼이 있습니다.
루트 창의 속성을 변경하는 방법을 알아봅시다.
창 제목 변경
창 제목을 변경하려면 다음과 같은 title() 방법을 사용합니다.
window.title(new_title)
예를 들어 다음은 루트 창의 제목을 'Tkinter Window Demo'으로 변경합니다.
import tkinter as tk
root = tk.Tk()
root.title('Tkinter Window Demo')
root.mainloop()
Output :

창의 현재 제목을 얻으려면 인수 없이 title() 메서드를 사용합니다.
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픽셀로 변경합니다.
import tkinter as tk
root = tk.Tk()
root.title('Tkinter Window Demo')
root.geometry('600x400+50+50')
root.mainloop()
때로는 창을 화면 중앙에 배치하고 싶을 수도 있습니다. 다음 프로그램은 이를 수행하는 방법을 보여줍니다.
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() 메서드를 사용할 수 있습니다.
window.geometry()
크기 조정 동작
기본적으로 창의 너비와 높이 크기를 조정할 수 있습니다. 창 크기가 조정되는 것을 방지하려면 다음 resizable()방법을 사용할 수 있습니다.
window.resizable(width,height)
이 resizable()메서드에는 창의 너비와 높이를 크기 조정할 수 있는지 여부를 지정하는 두 개의 매개 변수가 있습니다.
다음은 고정된 크기의 창을 만드는 방법을 보여줍니다.
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% 투명한 창을 보여줍니다.
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)
다음 예에서는 루트 창을 다른 모든 창 위에 배치합니다. 즉, 루트 창이 항상 맨 위에 있습니다.
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() 메서드를 호출합니다.
다음 프로그램은 기본 아이콘을 새 아이콘으로 변경하는 방법을 보여줍니다.
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 |