6

Tkinter(Python用)でフォントサイズを変更できるテキストウィジェットを作成しようとしていますが、これが発生した場合、ウィジェット自体のサイズを変更したくありません。ウィジェット内のすべてのテキストは同じフォントスタイルです。私がこれまでに得たもの:

root = Tk()
t = Toplevel(root)
fnt = tkFont.Font(family="Helvetica",size=36,weight="bold",underline=1)
txt = Text(t, font=fnt, width=20, height=6)
txt.grid(row=0,column=0)
b = Button(t, text="click", command=change)
b.grid(row=1, column=0)
txt.insert(END, "This is text!")

ここchangeで、次のように定義されます。

def change():
    txt.delete(1.0, END)
    fnt.config(size=100)
    txt.insert(END, "This is text!")

ボタンをクリックすると、テキストは実際に大きくなりますが、ウィジェット全体のサイズが変更されて補正されます。これは、ウィジェットのサイズがピクセルではなく「線」と「文字」で指定されているためだと思います。ウィジェットのサイズ変更を停止するにはどうすればよいですか?

ウィジェットのフォントを変更せずに、新しいフォントを指定するタグを付けてテキストを挿入しようとしましたが、これは機能しますが、挿入されたテキストの左右に新しいテキストを手動で入力すると問題が発生します、これはデフォルトのスタイルであり、必要なサイズではありません。

4

1 に答える 1

7

このページで私の質問に対する答えを見つけました:フォントの変更時にTkinterテキストウィジェットのサイズ変更を停止するにはどうすればよいですか?

重要なのは、テキストウィジェットを配置するフレームを作成し、フレームサイズをピクセル単位で指定し、grid_propagate(False)テキストウィジェットのサイズを変更するときにフレームのサイズが変更されないようにフレームを呼び出すことです。

于 2012-05-05T17:25:30.073 に答える