2013-06-09 30 views
13

は、この単純なコードを考えてみましょう。
ttk separator not visible
小さいドットのように見える場合は、赤い矢印でマークしました。のTkinterのTTK区切り文句を言わない表示

セパレータを水平幅全体に広げたり、少なくとも見えるようにするにはどうすればよいですか?

答えて

19

セパレータの自然な幅は1ピクセルです。 5つの列にスペースを予約するように指示しましたが、セパレーターが実際に5つの列を埋めるように要求していません。これを解決するには、sticky属性を指定します。「このウィジェットに必要以上のスペースがある場合は、ウィジェットの端をコンテナの特定の側面に貼り付けます。

この場合、セパレータをコンテナの左右の端に貼り付ける必要があります。あなたは西のための東のための「e」、および「W」をしたいので、粘着性の属性は、値のためにコンパスのポイントを使用しています、ブライアンのstickyソリューション@

ttk.Separator(...).grid(..., sticky="ew") 
+0

ありがとう。 – oat

0

は結構ですが、それは唯一のケースの一部を解決しますセパレータは横幅全体(あなたが尋ねたもの)をカバーしないためです。適用できる代替ソリューションは次のとおりです。.grid()の代わりにplace()レイアウトを使用し、セパレータの位置、幅(長さ)、さらには高さを完全に制御します。あなたは「Yを設定することができます

ttk.Separator(root).place(x=0, y=26, relwidth=1) 

ttk.Separator(root,orient=HORIZONTAL).grid(row=2, columnspan=5) 

を交換し

:だけ存在する場合にこれを適用(W/O余分な機能)とフルな横幅をカバーするために、 ' 好きなように。また、デフォルトのオプションであるため、orient=HORIZONTALは不要です。 ( `.option() 'レイアウトの使用の詳細と使用例はhttp://effbot.org/tkinterbook/place.htmを参照してください)

関連する問題