1

Text ウィジェットを使用してローグライクを作成しようとしています。

つまり、幅と高さのオプションを使用してウィジェットのサイズを設定でき、そのウィジェットのピクセルの高さまたは幅を見つけることができます。ただし、私がやりたいのは、ウィジェットのサイズを変更できるようにすること (pack(expand="yes", fill="both")) ですが、サイズ変更時に表示されたテキストを更新できるようにすることです。winfo_width() と文字のピクセル寸法に基づく計算に頼らずに、ウィジェットの実行中に文字の寸法を取得する方法はありますか?

4

3 に答える 3

2

私はまったく同じ問題に数回遭遇しましたが、私の知る限り、文字列の幅を見つける方法はありません。本当に唯一の方法は、winfo_ コマンド (幅、高さ、ジオメトリ) を使用することです。ただし、ラベルを変更してテキストを追加した場合に、すべてのテキストが表示されるようにしたいだけのように思えます。その場合は、心配する必要はありません。これはすべて、ウィジェット自体が処理する必要があります。すべてのラベルを表示するためにそれらが展開されていない場合は、通常、そのラベルを含むウィジェットの 1 つが展開するように設定されていないことを意味します (expand=YES を .pack で使用するか、columnconfigure(i, weight=1) を使用して。グリッド)。

最終的な考え; パックの引数で、それが であることを確認しYES、 ではありません"yes"。その大文字の YES は文字列ではなく、Tkinter によって定義された変数名です。

于 2012-04-23T22:57:26.820 に答える
0

文字の幅を自動的に取得する方法はありませんが、固定幅フォントを使用していると仮定すると、簡単に計算できます。font_measureこれを行う 1 つの方法は、フォント オブジェクトのメソッドを使用することです。「0」の幅を取得するために使用font_measureします(またはその他の文字。tk ユーザーは内部的にゼロであると思いますが、固定幅のフォントでは重要ではありません)。これを計算に使用します。

于 2012-04-24T00:10:44.627 に答える