2017-01-18 13 views
1

からthisボタンのサイズを変更する方法が見つかりましたので、このコードを実行しようとしました。Tkinterボタンのサイズ変更

from tkinter import * 
selection_window = Tk() 
selection_window.wm_title("") 
selection_window.geometry('{}x{}'.format(200, 150)) 
frame_1 = Frame(selection_window, width=200, height=30) 
Button(frame_1, text="Single",height = 100).pack(side=LEFT,anchor=S) 
Button(frame_1,text="Range",command=Toplevel,height = 20).pack(side=RIGHT,anchor=S) 
frame_1.pack() 
selection_window.mainloop() 

しかし、ボタンのサイズは変更されず、むしろボタンがウィンドウの中央に移動しました。誰かが私になぜ問題があるのか​​教えてもらえますか?

screenshot

+0

:単純 '.geometry( "200×150")' – furas

+3

それは私がLinuxとあなたのボタンを使用しています、OS関連の問題です私にとっては別の高さを持っています。私はOSXのtkのデフォルトのテーマは高さキーワードをサポートしていないと思う。 –

+2

@ j_4321は正しいです:OSXのテーマはそのボタンに関して非常に厳しいです。 –

答えて

1

ボタンの高さ: あなたが気付いた場合は、FRAME_1の高さが30であるとボタンの高さは100と20のワンボタンの高さがFRAME_1よりも有意に背が高いしています。だからあなたがあなたのtkウィンドウを最大にするならば、あなたはボタンの高さの違いを見るでしょう。または、ボタンの高さを10に設定し、もう一方を2に設定してスクリプトを再実行して高さの違いを確認してください。結論として、ボタンの高さを変更することができます。

ボタン横方向位置: ボタンの横方向の配置がパックシステムのpadx = [x_left、x_right]オプションを使用して制御することができます。 x_leftおよびx_rightは、ボタンの両側に親との関係で残される水平の外部パディングを示します。パッカーのアルゴリズムについては、Tk documentationをよく読んでください。

from tkinter import * 
selection_window = Tk() 
selection_window.wm_title("") 
selection_window.geometry('{}x{}'.format(200, 150)) 
frame_1 = Frame(selection_window, width=200, height=30) 
frame_1.pack() 
Button(frame_1, text="Single",height = 10).pack(side=LEFT, anchor=S, padx=[0,40]) 
Button(frame_1,text="Range",command=Toplevel,height = 2).pack(side=RIGHT, anchor=S, padx=[20,0]) 
selection_window.mainloop() 

身長:Height配置:Placement

パート2:以下のコメントパー 、ttk.Buttonの高さを変更すると、使用してOSXのためにも、可能であるかどうかを確認するために、スクリプトの下に実行してください「非デフォルト」スタイルのテーマを作成し、コメントセクションに検索結果を投稿します。私のUbuntuで動作しました。ところで

from tkinter import * 
import tkinter.ttk as ttk 
s=ttk.Style() 
print('Style themes on my system are ', s.theme_names()) 
s.theme_use('clam') 
s.configure('bb.TButton', background='white', padding=50) 
b1=ttk.Button(text='Default') 
b1.pack(side=LEFT, anchor=S, padx=[0,40]) 
b2=ttk.Button(text='Custom', style='bb.TButton') 
b2.pack(side=RIGHT, anchor=S, padx=[20,0]) 

パディング= 1padding=1 パディング= 40padding=40

+0

ありがとう!私は@ j_4321がその質問に答えたと思う。私は高さと幅の値を変更しようとしました(範囲(20)の高さを設定するためにループを使用していました)、何も変更されていません。 – pkqxdd

+0

@pkqxdd Packの高さと幅のオプションがOSXには影響しなかったことを教えてくれてありがとう。私は新しいことを学びました。 padxオプションがボタンの横置きに何らかの変更を加えたかどうか分かりますか?上記の動作は、私がUbuntu 16.04システムで観測したものです。 –

+0

@pkqxdd tk.Buttonの問題が発生しました。 j_4321によると、問題はtkのデフォルトのテーマである。この場合、別のテーマを使用しても効果がありますか?これを確認するには、別のカスタムテーマを持つttk.Buttonを使用する必要があります。 http://infohost.nmt.edu/tcc/help/pubs/tkinter/web/ttk-themes.htmlのセクション47と48を参照してください。 ttk.Buttonのスタイルを変更することが可能だったのですが、高さを変更するオプションが見つからない可能性があります。 –

関連する問題