問題タブ [monospace]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
8083 参照

python - Tkinter ウィジェットを等幅のプラットフォームに依存しないフォントに設定するには?

ここのセクション Standard Fontsで述べられています:

特に多かれ少なかれ標準的なユーザー インターフェイス要素については、各プラットフォームで使用する特定のフォントが定義されています。Tk は、これらの多くを常に利用可能な標準フォント セットにカプセル化します。もちろん、標準ウィジェットはこれらのフォントを使用します。これは、プラットフォームの違いを抽象化するのに役立ちます。

そして、事前定義されたフォントのリストには次のものがあります。

TkFixedFont A standard fixed-width font.

Tkinterこれは、たとえば、この回答で述べられているように、プラットフォームに依存しない等幅フォントを選択する標準的な方法でここで見つけることができるものにも対応しています。

悲しいかな、以下の簡単なコードのように、自分でこれをやろうとすると:

私が得るのはこれです:

TkFixedFont、サイズ 16

それは私には等幅に見えないので、私のプラットフォームで何が正確にTkinter変換されるかを次のように確認します。TkFixedFont

答えは次のとおりです。

では、どのようにDejaVu Sans Mono見えますか?

DejaVu Sans Mono、サイズ 16

上で引用したTkdocs.com チュートリアルには、名前付きフォントに関するセクションもあり、そこには次のように書かれています。

CourierTimes、およびの名前Helveticaがサポートされていることが保証されています (また、適切なモノスペース、セリフ、またはサンセリフ フォントにマップされています)。

だから私は試してみます:

そして今、最終的に等幅の結果が得られます:

ここに画像の説明を入力

確かに、私のプラットフォームが標準の等幅フォントとして選択するCourier NewわけではありませんDejaVu Sans Monoが、それは少なくとも何かですよね? しかし、うまくいくべきではありませんTkFixedFontか?