web-dev-qa-db-ja.com

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()
55
user2332665

このコードは、ユーザーがTk()ウィンドウのサイズを変更できないという条件でウィンドウを作成し、最大化ボタンを無効にします。

import tkinter as tk

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

プログラム内で、@ Carpetsmokerの答えを使用して、またはこれを行うことにより、ウィンドウの寸法を変更できます。

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

それをコードに実装するのはかなり簡単なはずです。 :)

103
Alex Thornton

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ピクセルの大きさになるようにしますが、ユーザーは引き続きウィンドウを拡大できます。

32
Martin Tournoij

次を使用できます。

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

コードの下部で、固定ウィンドウサイズを設定します。

4
Pamal Mangat

以下のコードは、root = tk.Tk()が呼び出される前のサイズに修正されます。

root.resizable(False, False)
1
Nae
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を使用します。

0
nate

これは、すでに上記で提供された既存のソリューションのバリアントです。

import tkinter as tk

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

利点は、入力する回数が減ることです。

0