Python (3.2.2) で tkinter を使用する方法を学習したばかりで、グリッド マネージャーの使用に問題があります。たとえば、button.grid(sticky=SE) を配置すると、ボタンは右下に配置されず、スティッキー値を無視して左上に配置されます。ここで何が間違っていますか?私はそれを検索しようとしましたが、私が間違っていることを本当に見つけることができませんでした。
8541 次
2 に答える
4
おそらく、ボタンを含むウィジェットの最小サイズを設定する必要があります。そうしないと、コンテナー ウィジェットが縮小して、ボタンの表示に必要なスペースだけを占有する可能性があります。もしそうなら、コンテナウィジェットは違いを表示するスペースを与えないので、スティッキーオプションは無意味です。
たとえばtk.Frame
、コンテナ ウィジェットとしてを使用すると、次のようになります。
import Tkinter as tk
class SimpleApp(object):
def __init__(self, master, **kwargs):
title = kwargs.pop('title')
frame = tk.Frame(master, borderwidth=5, bg = 'cyan', **kwargs)
frame.grid()
button = tk.Button(frame, text = title)
button.grid(sticky = tk.SE)
frame.rowconfigure('all', minsize = 200)
frame.columnconfigure('all', minsize = 200)
def basic():
root = tk.Tk()
app = SimpleApp(root, title = 'Hello, world')
root.mainloop()
basic()
収量
PS。Python3.2 に tkinter がインストールされていないため、これをテストすることはできませんが、Python3.2 でこれを機能させるために必要な唯一の変更は次のとおりです。
import tkinter as tk
それ以外の
import Tkinter as tk
于 2011-12-26T14:34:48.540 に答える
1
「ここで何が間違っているのか」と言うときは、コードを投稿する必要があります。そうしないと、誰もが何が間違っているのかを推測できます。
以下は正常に機能し、ボタンをグリッドセルの右下隅(SE)に配置します。デフォルトは左上(NW)ではなく中央です。
from tkinter import Button, Label, Entry, Tk, SE
root = Tk()
Label(text="Lots o' Stuff", width=30, height=15,
borderwidth=2, relief="raised").grid(rowspan=2)
Entry().grid(row=0, column=2)
Button(text="Hit Me").grid(row=1, column=2, sticky=SE)
root.mainloop()
于 2011-12-26T14:52:53.657 に答える