チェックボックスに従ってメッセージが表示されるウィンドウを作成するプログラムがあります。
メッセージが表示され、メッセージが表示されないときに、ウィンドウサイズを一定にするにはどうすればよいですか?
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)
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を使用します。
これは、すでに上記で提供された既存のソリューションのバリアントです。
import tkinter as tk
root = tk.Tk()
root.resizable(0, 0)
root.mainloop()
利点は、入力する回数が減ることです。