2017-10-13 18 views
3

私はPythonでかなり新しくなっているので、多分非質問ですが、集中的な検索が行われました。Python- ttk.Styleを使って変更できる値と変更できない値を調べる

私はテーブルttk.Entryを使用しています。すべてのテキストを中央に揃えたいと考えています。 style.configure('TEntry', foreground='green', justify=tk.CENTER)を使用している間 - テキストは、

を中心としていなかったが、代わりに、ウィジェットラインent1 = ttk.Entry(root, textvariable=t, width=20, justify=tk.CENTER)へ移動justify=tk.CENTERは、それがOKを働きました。同様に

は、font=('Helvetica', 18)ent=...

で述べたときに/私はttk.StylePython Documentationで特定の設定値を使用することはできませんときについての答えを探してテキストに影響を与えるとUsing and customizing ttk stylesで未解決の私を残しました。

任意の鉛?

+0

あなたが実際に*ウィジェットを作成する* 'style'を使用しましたか? –

+0

@RolandSmithはい。例えば、テキストの場合は、設定時にカラーが適用されます。 –

答えて

2

特に、ttkyエントリウィジェットのスタイリングにはいくつかの矛盾があることに注意してください。私が使用する経験則は:ttkentry.configure()が設定オプション(この場合はjustify)を返す場合は、ttkentry.configure(justify='center')または任意の有効なオプションを使用します。 Ttkエントリフォントは同じカテゴリにあります。 ttkentry.configure(font='???')メソッドを使用してフォントを設定します。次のように

だから、この場合には、ttkentry.configureを入力に対する応答は次のとおりです。

from tkinter import * 
from tkinter import ttk 
root = Tk() 
ttkentry = ttk.Entry(root) 
ttkentry.insert(0, "my centered text") 
ttkentry.pack() 
ttkentry.configure() 
# Partial output of ttkentry.configure() 
{'foreground': ('foreground', 'textColor', 'TextColor', '', ''),..., 'justify': ('justify', 'justify', 'Justify', <index object: 'left'>, 'left'),...,'validate': ('validate', 'validate', 'Validate', <index object: 'none'>, 'none')} 

# After this command, note that the text is centered. 
ttkentry.configure(justify='center') 
+0

あなたの応答を気に入ってください。私の質問は 'ttk.Style()'の使用に関するものでした。私が間違っていれば訂正しますが、 'ttkentry.configure()'を使うことは 'ttkentry = ttk.Entry(root、justify = CENTER)'と同じで、特定のウィジェットに対してのみ有効です。私の場合、私は複数のエントリタイムテーブルを持っています。 –

+1

はい、これは矛盾の問題です。スタイルのみを使用してエントリを完全にスタイルすることはできません:(...しかし、オプションデータベースを使って同じことを達成することができます 'root.option_add( '* Entry.Font'、 ' –

+0

BTW option_addは、非スタイル(通常のtkinter)ウィジェットに対してのみ機能します。['Consolas'、18]) –

関連する問題