Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

Tkinter에서 Toplevel 창의 위치를 확인하는 방법


프레임의 중앙에 위젯을 배치하려면 place 메서드를 사용할 수 있습니다. 또한 winfo_x()winfo_y() 함수를 활용하면 Toplevel 창의 현재 화면 좌표도 손쉽게 확인할 수 있습니다. 예제를 통해 자세히 살펴보겠습니다.

구현 단계

  • 필요한 라이브러리를 임포트하고 tkinter 프레임의 인스턴스를 생성합니다.

  • win.geometry 메서드를 사용하여 프레임의 크기를 설정합니다.

  • Toplevel 창을 생성하고 제목과 크기, 항상 맨 위에 표시되는 속성(-topmost)을 지정합니다.

  • 버튼을 생성하고 클릭 시 Toplevel 창의 좌표를 출력하는 콜백 함수를 연결합니다.

  • place 메서드에 상대 좌표 값(relx=0.5, rely=0.5)을 전달하여 위젯의 중심을 부모 컨테이너 기준 50% 위치에 배치하고, "anchor=CENTER" 옵션으로 앵커를 중앙으로 설정합니다.

  • 마지막으로 애플리케이션 창의 mainloop를 실행합니다.

예제 코드

# Tkinter 라이브러리 임포트
from tkinter import *
from tkinter import ttk

# Tkinter 프레임 인스턴스 생성
win = Tk()

# 창 크기 정의
win.geometry("750x350")
win.title("Main Window")

def toplevel_position():
    print("Toplevel 창의 좌표는 다음과 같습니다:", top.winfo_x(), top.winfo_y())

top = Toplevel(win, height=150, width=300)
top.title("This is the Toplevel Window")
top.attributes('-topmost', 'true')

button = ttk.Button(top, text="Get position", command=toplevel_position)

button.place(relx=0.5, rely=0.5, anchor=CENTER)

top.mainloop()

실행 결과

위 코드를 실행하면 다음과 같은 출력 창이 나타납니다.

Tkinter에서 Toplevel 창의 위치를 확인하는 방법

이제 "Get position" 버튼을 클릭하면 콘솔에 Toplevel 창의 현재 좌표가 출력됩니다.

Toplevel 창의 좌표는 다음과 같습니다: 282 105

여기서 winfo_x()는 창의 왼쪽 상단 모서리의 x 좌표를, winfo_y()는 y 좌표를 반환합니다. 이 방법을 응용하면 창의 위치를 실시간으로 추적하거나, 특정 조건에 따라 창을 원하는 위치로 이동시키는 기능도 구현할 수 있습니다.