質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Tkinter

Tkinterは、GUIツールキットである“Tk”をPythonから利用できるようにした標準ライブラリである。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

1回答

8930閲覧

Python TkinterでFrameの大きさの固定ができない。

Colt-Python

総合スコア9

Tkinter

Tkinterは、GUIツールキットである“Tk”をPythonから利用できるようにした標準ライブラリである。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

1クリップ

投稿2020/03/16 00:33

編集2020/03/16 02:22

前提・実現したいこと

Python3 tkinterでFrameの大きさの固定

発生している問題・エラーメッセージ

frameの初期状態の大きさがおかしいです 現状はframeのタイトル分の大きさしかなく、理想としてはwidthとheightで指定した大きさにしたいです。

該当のソースコード

Python

1import tkinter as tk 2from tkinter import ttk 3 4root = tk.Tk() 5root.title("syokudou") 6 7root.geometry("1024x600") 8 9frame1=tk.LabelFrame(root, width=700, height=500, text="メニュー") 10frame1.place(x=0,y=0) 11 12frame2=tk.LabelFrame(root, width=213, height=400, text="注文内容") 13frame2.place(x=780,y=0) 14frame2.propagate(0) 15 16frame3=tk.LabelFrame(root,width=213, height=100, text="合計金額") 17frame3.place(x=780,y=500) 18frame3.propagate(0) 19 20 21a_notebook = ttk.Notebook(frame1, width=760, height=400) 22tab1 = ttk.Frame(a_notebook) 23 24 25a_notebook.add(tab1, text = '麺類') 26 27a_notebook.grid() 28 29UDN_How = 0 30UDN_Var = tk.StringVar(value="") 31 32GOK = 0 33GOK_Var = tk.StringVar(value="合計" + str(GOK) + "円") 34 35def UDNcom(): 36 global UDN_How 37 UDN_How = UDN_How + 1 38 39 global GOK 40 GOK = GOK + 200 41 42 UDN_Var.set("うどん 200円" + str(UDN_How) + "個") 43 GOK_Var.set("合計" + str(GOK) + "円") 44 45UDN = tk.Button(tab1, width=18, height=5, command=UDNcom, text="うどん\n¥200") 46UDN.grid(column=0, row=0) 47 48UDN_Lab = tk.Label(frame2, textvariable=UDN_Var) 49UDN_Lab.grid() 50 51GOK_Lab = tk.Label(frame3, textvariable=GOK_Var) 52GOK_Lab.grid() 53 54root.mainloop()

試したこと

frame.propagate(0)を使いましたが大きさが固定されません

補足情報(FW/ツールのバージョンなど)

Python3 tkinter 開発環境はwindows10 atomです

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

t_obara

2020/03/16 01:49

画像が見えないのもあるのですが、現状どのようになっていて、理想的にはどうしたいのかをご提示ください。また、フレームサイズ等の問題であれば、ソースにそれ以外の内容を記述するとわかりにくくなるので、問題が再現する最小限のコードを提示するようにされると回答が得られやすくなると思います。
guest

回答1

0

ベストアンサー

propagate() ではなく、 grid_propagate() を使用してください

Tk の propagate は pack を使用する場合grid を使用する場合 とで別々のコマンドでして、今回は grid を使用しているようですから、それに合わせて grid_propagate() を使用する必要があります。

確かに Python の tkinter では propagate() という (直観的にはどちらでも使えそうな) メソッドが用意されていますが、これはややこしいことに 単なる pack_propagate() の別名 として実装されている為、 grid を使用している場合は機能しません。

投稿2020/03/16 02:24

argparse

総合スコア1017

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Colt-Python

2020/03/16 02:30

ありがとうございます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問