Подтвердить что ты не робот

Установка окна в фиксированный размер с помощью 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()

Как я могу сделать размер окна постоянным, когда сообщение отображается, и сообщение не отображается.

4b9b3361

Ответ 1

Этот код создает окно с условиями, при которых пользователь не может изменять размеры окна Tk(), а также отключает кнопку максимизации.

import tkinter as tk

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

В рамках программы вы можете изменить размеры окна с ответом @Carpetsmoker или сделав следующее:

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

Вам должно быть довольно легко реализовать это в вашем коде.:)

Ответ 2

Вы можете использовать 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 пикселей, но пользователь все равно может расширить окно.

Ответ 3

Вы можете использовать:

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

В нижней части кода установите фиксированный размер окна.

Ответ 4

Это вариант уже существующего решения, уже представленного выше:

import tkinter as tk

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

Преимущество состоит в том, что вы печатаете меньше.