2

ラベルとキャンバスのウィジェットを並べようとしています。そのためには、ラベル ボックスの幅を知る必要があります。ユーザーがシステム フォント サイズを変更した場合にウィジェットを自動調整したいので、1 文字あたり 12 ピクセルをハードコーディングしたくありません。ラベル ウィジェットを測定すると、幅は常に 1 ピクセルです。.update() を呼び出すまでは、正しい値を取得します。しかし、 .update() は私のラベルでウィンドウを画面に表示し、最終的なウィジェットを最終的にパックするとウィンドウは消えます。しかし、これにより、ウィジェットを最初に配置したときに望ましくないフラッシュが発生します。

では、.update() を実行せずにラベル ウィジェットを測定するにはどうすればよいでしょうか? または、画面に表示せずにウィジェットを .update() するにはどうすればよいですか? 問題があれば、私は Python を使用しています。

4

1 に答える 1

1

update を呼び出す前にウィンドウを取り消します。必要なコマンドは wm_withdraw です

root = Tk()
root.wm_withdraw()
<your code here>
root.wm_deiconify()

ただし、実際の問題がウィジェットの並べ方である場合は、通常、ウィジェットのサイズを知る必要はありません。グリッド ジオメトリ マネージャーを使用します。方眼紙を取り出し、ウィジェットを配置します。各ウィジェットに必要な数の正方形を自由に広げてください。その後、設計は一連のグリッド呼び出しに簡単に変換できます。

于 2009-02-25T12:32:15.947 に答える