일정한 크기로 Tkinter 창을 설정하는 방법

윈도우 인스턴스가 시작될 때 너비와 높이를 할당하더라도 Tkinter 윈도우 크기는 기본적으로 크기를 조정할 수 있습니다.

import tkinter as tk

app = tk.Tk()

app.geometry('200x200')

app.mainloop()

위의 코드로 만든 창을 끌어서 다른 창 크기를 얻을 수 있습니다. ‘크기 조정 가능’기능을 사용하여 너비와 높이 크기를 제한해야합니다.

import tkinter as tk

app = tk.Tk()

app.geometry('200x200')
app.resizable(width=0, height=0)

app.mainloop()

app.resizable(width = 0, height = 0)에서는 너비와 높이를 모두 조정할 수 없습니다.

일정한 크기로 Tkinter 프레임 설정

창 내부의 프레임은 창과 약간 유사합니다. 즉, 프레임의 너비와 높이를 정의하더라도 자동으로 크기가 조정됩니다.

import tkinter as tk

app = tk.Tk()

app.geometry('200x200')
app.resizable(0, 0)

backFrame = tk.Frame(master=app,
                    width=200,
                    height=200,
                    bg='blue').pack()

button1 = tk.Button(master=backFrame, 
                    text='Button 1', 
                    bg='blue', 
                    fg='red').pack()
button2 = tk.Button(master=backFrame, 
                    text='Button 2', 
                    bg='blue', 
                    fg='green').pack()
button3 = tk.Label(master=backFrame, 
                   text='Button 3', 
                   bg='red',
                   fg='blue').pack()

app.mainloop()

우리가 예상 한 GUI 는 다음과 같습니다.

Tkinter 프레임 크기를 조정할 수 없음

그러나 위 코드를 실행 한 후에 얻는 것은

Tkinter 프레임 크기 조정 가능

프레임 backFrame은 연결된 위젯에 맞게 자동으로 크기가 조정됩니다. 즉, backFrame내부의 위젯은 부모 프레임의 크기를 제어합니다.

pack_propagate (0)을 설정하여 위젯의 크기를 조정하도록 프레임을 비활성화 할 수 있습니다.

프레임 크기를 고정하는 올바른 코드는

import tkinter as tk

app = tk.Tk()

app.geometry('200x200')
app.resizable(0, 0)

backFrame = tk.Frame(master=app,
                    width=200,
                    height=200,
                    bg='blue')
backFrame.pack()
backFrame.propagate(0)

button1 = tk.Button(master=backFrame, 
                    text='Button 1', 
                    bg='blue', 
                    fg='red').pack()
button2 = tk.Button(master=backFrame, 
                    text='Button 2', 
                    bg='blue', 
                    fg='green').pack()
button3 = tk.Label(master=backFrame, 
                   text='Button 3', 
                   bg='red',
                   fg='blue').pack()

app.mainloop()

관련 문장 - Tkinter Geomertry

  • Tkinter 에서 전체 화면 창을 만드는 방법
  • comments powered by Disqus