我有一个程序可以创建一个窗口,根据复选框显示一条消息。
如何在显示消息并且未显示消息时使窗口大小保持不变?
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()
答案 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)
您可以使用minsize
和maxsize
设置最低&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。