development

tkinter로 창 크기가 조정되는 것을 어떻게 막을 수 있습니까?

big-blog 2021. 1. 5. 21:06
반응형

tkinter로 창 크기가 조정되는 것을 어떻게 막을 수 있습니까?


확인란에 따라 메시지가 표시되는 창을 만드는 프로그램이 있습니다.

메시지가 표시되고 메시지가 표시되지 않을 때 창 크기를 일정하게 만들려면 어떻게해야합니까?

from Tkinter import *

class App:
    def __init__(self,master):
        self.var = IntVar()
        frame = Frame(master)
        frame.grid()
        f2 = Frame(master,width=200,height=100)
        f2.grid(row=0,column=1)
        button = Checkbutton(frame,text='show',variable=self.var,command=self.fx)
        button.grid(row=0,column=0)
        msg2="""I feel bound to give them full satisfaction on this point"""
        self.v= Message(f2,text=msg2)
    def fx(self):
        if self.var.get():
            self.v.grid(column=1,row=0,sticky=N)
        else:
            self.v.grid_remove()

top = Tk()
app = App(top)            
top.mainloop()

이 코드는 사용자가 Tk()창의 크기를 변경할 수없는 조건으로 창을 만들고 최대화 버튼도 비활성화합니다.

import tkinter as tk

root = tk.Tk()
root.resizable(width=False, height=False)
root.mainloop()

프로그램 내에서 @Carpetsmoker의 답변을 사용하거나 다음을 수행하여 창 크기를 변경할 수 있습니다.

root.geometry('{}x{}'.format(<widthpixels>, <heightpixels>))

이를 코드에 구현하는 것은 매우 쉽습니다. :)


당신은을 사용 minsize하고 maxsize, 예를 들어, 최소 및 최대 크기를 설정합니다 :

def __init__(self,master):
    master.minsize(width=666, height=666)
    master.maxsize(width=666, height=666)

창에 666 픽셀의 고정 된 너비와 높이를 제공합니다.

또는 minsize

def __init__(self,master):
    master.minsize(width=666, height=666)

창 크기가 항상 666 픽셀 이상 인지 확인 하지만 사용자는 계속 창을 확장 할 수 있습니다.


다음을 사용할 수 있습니다.

parentWindow.maxsize(#,#);
parentWindow.minsize(x,x);

코드 하단에서 고정 창 크기를 설정합니다.


아래 코드 root = tk.Tk()는 호출되기 전의 크기로 수정 됩니다.

root.resizable(False, False)

이것은 위에 이미 제공된 기존 솔루션의 변형입니다.

import tkinter as tk

root = tk.Tk()
root.resizable(0, 0)
root.mainloop()

장점은 입력 횟수가 적다는 것입니다.


Traceback (most recent call last):
  File "tkwindowwithlabel5.py", line 23, in <module>
    main()
  File "tkwindowwithlabel5.py", line 16, in main
    window.resizeable(width = True, height =True)
  File "/usr/lib/python3.4/tkinter/__init__.py", line 1935, in                
  __getattr__
    return getattr(self.tk, attr)
AttributeError: 'tkapp' object has no attribute 'resizeable'

첫 번째 답변으로 얻을 수있는 것입니다. tk는 최소 및 최대 크기를 지원합니다.

window.minsize(width = X, height = x)
window.maxsize(width = X, height = x)

나는 그것을 알아 냈지만 첫 번째 것을 시도했습니다. tk와 함께 python3 사용.

참조 URL : https://stackoverflow.com/questions/21958534/how-can-i-prevent-a-window-from-being-resized-with-tkinter

반응형