如何防止使用tkinter调整窗口大小?

时间:2014-02-22 18:28:11

标签: python python-2.7 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()

6 个答案:

答案 0 :(得分:103)

此代码创建一个窗口,其中包含用户无法更改Tk()窗口尺寸的条件,并且还会禁用最大化按钮。

import tkinter as tk

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

在程序中,您可以使用@ Carpetsmoker的答案更改窗口尺寸,或者执行以下操作:

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

将它实现到代码中应该相当容易。 :)

答案 1 :(得分:32)

您可以使用minsizemaxsize设置最低&amp;&amp;最大尺寸,例如:

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

会给你的窗户一个固定的宽度&amp;高度为666像素。

或者,只使用minsize

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

确保您的窗口始终至少 666像素大,但用户仍然可以展开窗口。

答案 2 :(得分:4)

您可以使用:

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

在代码底部设置固定窗口大小。

答案 3 :(得分:1)

下面的代码会在调用之前将root = tk.Tk()修复为其大小:

root.resizable(False, False)

答案 4 :(得分:0)

这是上面已经提供的现有解决方案的变体:

import tkinter as tk

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

优点是你输入的更少。

答案 5 :(得分:0)

for i in 0..<dataArray.count{
    yourLabel.tag = i
    for (key,value) in dataArray[i]{
        print(key, value)
        yourLabel.text = value
    }

}

是第一个答案你会得到的。 tk支持最小和最大尺寸

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'

我想通了,但只是尝试了第一个。使用python3和tk。