일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- hive
- dataframe
- Apache
- GIT
- c#
- numpy
- string
- Java
- Google Spreadsheet
- array
- PySpark
- Github
- Tkinter
- matplotlib
- Google Excel
- math
- Python
- gas
- Mac
- Kotlin
- Redshift
- list
- Excel
- django
- google apps script
- PostgreSQL
- 파이썬
- PANDAS
- SQL
- Today
- Total
달나라 노트
Python tkinter : winfo_width, winfo_height, winfo_screenwidth, winfo_screenheight (Window 크기, 화면 크기, Window 가로 길이, 화면 가로 길이, Window 세로 길이, 화면 세로 길이, Label 가로 길이, Label 세로 길이, Label 크.. 본문
Python tkinter : winfo_width, winfo_height, winfo_screenwidth, winfo_screenheight (Window 크기, 화면 크기, Window 가로 길이, 화면 가로 길이, Window 세로 길이, 화면 세로 길이, Label 가로 길이, Label 세로 길이, Label 크..
CosmosProject 2022. 5. 17. 21:31
tkinter에서 Window 객체를 생성할 때 이 객체에는 여러 정보가 담깁니다.
이 정보에는 Window의 크기나 사용자가 사용하는 화면의 해상도 정보도 있습니다.
이러한 정보를 어떻게 얻을 수 있는지 알아봅시다.
1. winfo_width, winfo_height
winfo_width = Window의 현재 가로 길이를 의미합니다.
winfo_height = Window의 현재 세로 길이를 의미합니다.
import tkinter as tk
window = tk.Tk()
window.geometry('500x400')
label = tk.Label(window, text='Label')
label.place(x=0, y=0)
def show_screen_size():
width = window.winfo_width()
height = window.winfo_height()
label.config(text='Width = {w}, Height = {h}'.format(w=width, h=height))
button = tk.Button(window, text='click', command=show_screen_size)
button.place(x=0, y=30)
window.mainloop()
위 코드는 버튼을 클릭하면 현재 Window의 가로 길이 / 세로 길이를 Label에 표시해주는 기능을 하는 코드입니다.
버튼의 command로 지정된 show_screen_size 함수를 보면 다음과 같습니다.
- width = window.winfo_width()
- height = window.winfo_height()
먼저 위 부분에서 Window의 가로 길이, 세로 길이를 얻어옵니다.
- label.config(text='Width = {w}, Height = {h}'.format(w=width, h=height))
그리고 나서 label 객체의 config를 이용해서 Label에 Window의 가로/세로 길이를 표시해줍니다.
코드를 실행해봅시다.
그러면 일단 기본적으로 위같은 화면이 뜹니다.
위 상태에서 버튼을 눌러봅시다.
그러면 가로/세로 길이가 표시됩니다.
- window.geometry('500x400')
가로 = 500, 세로 = 400은 위처럼 geometry에서 설정한 Window의 가로/세로 길이입니다.
winfo_width(), winfo_height()은 현재 Window의 길이를 얻어옵니다.
따라서 Window를 마우스로 드래그해서 Window의 크기를 바꿔준 후 버튼을 다시 누르면 위처럼 표시되는 길이가 바뀝니다.
winfo_width, winfo_height은 window 객체 뿐 아니라 Label, Button같은 다른 객체에도 사용할 수 있습니다.
아래 코드를 봅시다.
import tkinter as tk
window = tk.Tk()
window.geometry('500x400')
label = tk.Label(window, text='Label')
label.place(x=0, y=0)
def show_screen_size():
width = label.winfo_width()
height = label.winfo_height()
label.config(text='Width = {w}, Height = {h}'.format(w=width, h=height))
button = tk.Button(window, text='click', command=show_screen_size)
button.place(x=0, y=30)
window.mainloop()
동일한 형태인데 winfo_width, winfo_height을 적용하는 대상이 label로 바뀌었습니다.
이러면 Label의 현재 가로길이, 세로길이를 return합니다.
코드를 실행하면 아래와 같은 화면이 뜹니다.
그리고 버튼을 눌러봅시다.
그러면 Label에 위같은 내용이 표시됩니다.
이것은 Label의 크기가 표시되는 것입니다.
Label의 가로 길이가 39픽셀, 세로 길이가 22픽셀이라는 의미입니다.
여기서 한 가지 주의할 것은 Label은 Label에 표시되는 글자에 따라 자동으로 크기를 조절합니다.
즉, Width = 39, Height = 22라는 글자가 표시됨으로써 Label의 크기가 바뀌었을겁니다.
따라서 버튼을 한 번 더 누르면 Label의 바뀐 크기가 표시될 것입니다.
한번 더 클릭하면 위처럼 Width = 153으로 표시됩니다.
Label의 표시되는 글자의 길이가 늘어났으니 Label의 가로길이(width)가 늘어난 걸 볼 수 있죠.
import tkinter as tk
window = tk.Tk()
window.geometry('500x400')
label = tk.Label(window, text='Label')
label.place(x=0, y=0)
def show_screen_size():
width = button.winfo_width()
height = button.winfo_height()
label.config(text='Width = {w}, Height = {h}'.format(w=width, h=height))
button = tk.Button(window, text='click', command=show_screen_size)
button.place(x=0, y=30)
window.mainloop()
비슷한 맥락의 예시이지만 이번에는 button의 가로/세로 길이를 출력하는 것으로 바꿔보았습니다.
버튼을 클릭하면 위처럼 버튼의 가로 길이, 세로 길이가 표시됩니다.
2. winfo_screenwidth, winfo_screenheight
winfo_screenwidth = 현재 실행된 컴퓨터의 해상도 중 가로 길이를 return합니다.
winfo_screenwidth = 현재 실행된 컴퓨터의 해상도 중 세로 길이를 return합니다.
import tkinter as tk
window = tk.Tk()
window.geometry('500x400')
label = tk.Label(window, text='Label')
label.place(x=0, y=0)
def show_screen_size():
width = window.winfo_screenwidth()
height = window.winfo_screenheight()
label.config(text='Width = {w}, Height = {h}'.format(w=width, h=height))
button = tk.Button(window, text='click', command=show_screen_size)
button.place(x=0, y=30)
window.mainloop()
코드는 이전에 봤던 예시와 동일합니다.
코드를 실행하고 버튼을 눌러봅시다.
그러면 위처럼 Width = 2560, Height = 1440으로 표시됩니다.
이것은 현재 제 컴퓨터의 해상도입니다.
'Python > Python tkinter' 카테고리의 다른 글
Python tkinter : Canvas, PhotoImage, create_image (0) | 2022.05.19 |
---|---|
Python tkinter : place_info (객체의 위치 정보, 객체의 position, 객체 위치 좌표) (0) | 2022.05.17 |
Python tkinter : Button (버튼) (0) | 2022.05.17 |
Python tkinter : Label (라벨, 문자 띄우기) (0) | 2022.05.17 |
Python tkinter : geometry (Window의 크기 설정, Window 가로 길이, Window 세로 길이) (0) | 2022.05.17 |