Python tkinterでウィジェットを再スケーリングするときに、ウィジェットの残りの部分でテキストをスケーリングするにはどうすればよいですか?

デビッドコリンズ

ウィジェットを再スケーリングするとき、テキストをウィジェットの残りの部分に合わせてスケーリングしたいと思います。

クリックアンドドラッグでウィジェットをスケーリングするコードを次に示します。これは正常に機能していますが、テキストは拡大縮小されません。

import tkinter as tk

#Create & Configure root 
root = tk.Tk()
Grid.rowconfigure(root, 0, weight=1)
Grid.columnconfigure(root, 0, weight=1)

#Create & Configure frame 
frame=tk.Frame(root)
frame.grid(row=0, column=0, sticky=N+S+E+W)

#Create a 5x10 (rows x columns) grid of labels inside the frame
for row_index in range(5):
    Grid.rowconfigure(frame, row_index, weight=1)
    for col_index in range(10):
        Grid.columnconfigure(frame, col_index, weight=1)
        btn = tk.Label(frame, text="Row %s: Col %s" % (row_index, col_index),
                       background = "#F8FC10") #create a label inside frame 
        btn.grid(row=row_index, column=col_index, sticky=N+S+E+W)  

root.mainloop()

テキストをウィジェットの残りの部分に合わせて拡大縮小したい。ウィジェットは正常に拡大縮小されますが、テキストは拡大縮小されません。クリックアンドドラッグで拡大縮小するウィジェットでテキストを拡大縮小することは可能ですか?

Gary02127

はい、テキストを拡大縮小することは可能ですが、少し手間がかかります。私は非常によく似た何かをしなければなりませんでした、そして私がそれをした方法はフォントサイズを介してでした。テキストウィジェットを作成すると、デフォルトでテキストウィジェットはデフォルトのフォント「TkFixedFont」を取得します。その名前の付いたフォントは本質的に「Courier10」かそこらです。Text.config(font = ...)を使用して、テキストフォントを手動で設定できます。秘訣は、テキストウィジェットの相対的なサイズに応じてフォントのサイズを変更することです。したがって、ある種のスケーリング関数を使用して、テキストウィジェットのサイズを目的のフォントのサイズに変換し、計算したフォントサイズに基づいてテキストウィジェットのフォントを新しいフォントで更新します。'<Configure>'これは、テキストウィジェット(またはアプリ全体)のサイズが変更されたときに呼び出される、定義しイベントハンドラーで実行します。

私のアプリには、ズームインとズームアウトのボタンがあります。これを行うには、上記のようにフォントサイズを変更します。チャームのように機能します。

投稿を読み直すと、一部のラベルのテキストを変更しようとしているようです。新しい名前付きフォントを作成し、それをすべてのラベルのフォントとして割り当てます。次に、'<Configure>'ハンドラーで、名前付きフォントを新しいフォントサイズで更新するだけで、その名前付きフォントを使用するすべてのウィジェットに伝播されます。これは、ラベル、ボタン、テキストウィジェットなどに当てはまります。

また、補足として、ラベルやその他のウィジェットのテキストを拡大縮小すると、それらのウィジェットのサイズが表示されているテキストに合わせて調整されます。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

Related 関連記事

ホットタグ

アーカイブ