2017-10-17 6 views
-1

私のコードは次のとおりです。フレームの中央にURLラベルを設定し、その横に入力テキストを設定し、URLと入力テキストフィールドの下に3つのボタンを追加する。tkinterを使用してフレーム内のモジュールを設定する

import tkinter as tk 
    from tkinter import * 
    root = tk.Tk() 


root.geometry("520x400") 

frame1 = tk.LabelFrame(root, text="my_first_window", width=400, height=200, bd=5) 
Label(root, text="URL:").grid(row=0, column=1 ,sticky=W) 

e1 = Entry(root) 
e1.grid(row=0, column=2) 
frame1.grid(row=0, column=0, columnspan=7, padx=8) 

Button(root, text='BACK', command=lambda:print('BACK')).grid(row=8, column=1, sticky=W, pady=4) 
Button(root, text='NEXT', command=lambda:print('NEXT')).grid(row=8, column=2, sticky=W, pady=4) 
Button(root, text='CANCLE', command=lambda:print('CANCLE')).grid(row=8, column=3, sticky=W, pady=4) 


mainloop() 
+0

あなたのコードに 'Entry'ウィジェットや' Button'ウィジェットはありません。また、**の質問**で質問していません。ここであなたを助けるために何ができるのですか?あなたはより明確にする必要があります。 –

+0

ボタンを追加しましたが、フレームをtkinterウィンドウの中央に設定したい場合は、メニューバーとツールバーから特定のスペースを残してください。@EthanFieldを追加した場合は、前のコードを新しいものに編集します。 –

答えて

0

あなたが.grid()メソッドを使用して主張する場合、あなたはあなたのコードに以下を追加することができます。

for column in range(10): 
    Grid.columnconfigure(root, column, weight=1) 

for row in range(10): 
    Grid.rowconfigure(root, row, weight=1) 

これは、列のと行のグリッドのはで利用可能なスペースを持っていることを意味しますウィンドウを均等に与えます。これをsticky属性の.grid()と組み合わせて使用​​すると、探している結果を得ることができます。


しかし、主観的にあなたが(少なくとも私自身の意見では)はるかに簡単な構成とTkinterを用のGUIの管理が可能になります.pack()方法、に切り替えることが容易かもしれ話します。

あなたは以下のような何かができる:

from tkinter import * 

root = Tk() 

root.geometry("520x400") 

frame1 = LabelFrame(root, text="my_first_window", width=400, height=200, bd=5) 
Label(frame1, text="URL:").pack(side="left", fill="x") 

e1 = Entry(frame1) 
e1.pack(side="left", fill="x", expand=True) 
frame1.pack(fill="both", expand=True) 

Button(root, text='BACK', command=lambda:print('BACK')).pack(fill="both", expand=True, side="left", padx=5, pady=5) 
Button(root, text='NEXT', command=lambda:print('NEXT')).pack(fill="both", expand=True, side="left", padx=5, pady=5) 
Button(root, text='CANCLE', command=lambda:print('CANCLE')).pack(fill="both", expand=True, side="left", padx=5, pady=5) 

root.mainloop() 

上記求め、何度もここでスタックオーバーフローに答えてきたさまざまな新しいアイデアの多くを使用していますが私はリンクするつもりですあなたはthis fantastic answer from Bryan Oakleyになります。

+0

それは本当に私が実際にやろうとしていたもののために本当に働いていました。@Ethan Field –

関連する問題