2017-11-21 3 views
1

通常のiOSアプリケーションと同じように、さまざまなフレームを作成し、それらを切り替えたり破棄してウィンドウ間を移動したりしようとしています。Python Tkinter:フレームにボタンを配置する

これを行うには、ウィジェット(コンポーネント)をフレーム(コンテナ)に配置する必要があります。

ただし、フレームにボタンを追加しようとすると、右側には表示されません。ここで

は私のコードです:Tkinterのインポートから *

root=Tk() 
root.geometry('500x500') 
root.title('Good morning :)') 

frame1=Frame(root,width=500,height=500,bg='green') 
frame1.pack() 

button1=Button(frame1,text='Hello') 
button1.pack(side='bottom') 
+1

あなたはroot.mainloop()を忘れています – furas

+0

なぜウィジェットのいずれかが右側に行くべきだと思いますか?あなたのコードにはそれをしようとするものは何もありません。あなたは「すべてを試しました」と言いますので、試したことの1つ以上を私たちに示してください。 –

+0

'pack'がどのように動作するかについての標準的なドキュメントは次のとおりです:http://tcl.tk/man/tcl8.5/TkCmd/pack.htm#M26 –

答えて

1

あなたが全体のトップレベルのウィンドウを埋めるために、フレームを拡大する必要がある、とあなたがside='right'代わりのside='bottom'にパックするボタンを指示する必要があります。
最後にroot.mainloop()を実行する必要があります。

from tkinter import * 

root = Tk() 
root.geometry('500x500') 
root.title('Good morning :)') 

frame1 = Frame(root, bg='green') 
frame1.pack(expand=True, fill=BOTH) 

button1 = Button(frame1, text='Hello') 
button1.pack(side=RIGHT) 

root.mainloop() 

それがパック()関数に渡される追加のキーワード引数にジオメトリに記載された完全な500×500に拡大していきますので、また、あなたは、フレーム文で寸法を必要としません。デフォルトでは、フレームはその内部にウィジェットを保持するだけの大きさになるため、トップレベルのルートウィジェットのフルサイズに拡張するよう指示しない限り、ボタンと同じ大きさになります。

関連する問題