2017-11-14 18 views
1

私はtkinterを学ぼうとしていますが、問題があり、この時点から先に進むことはできません。 1つのボタンで簡単なGUIを作成したかったのですが残念ながら、そのボタンを移動することはできません(常に左上隅に表示されています)。私はiternetにこのコードのスニペットを見つけた、けれどもTkinterでウィジェットを動かすことができません

class App(Frame): 
def __init__(self, master=None): 
    Frame.__init__(self, master) 
    self.grid() 
    self.master.title('GUI') 
    quitbttn = Button(self, text='quit') 
    quitbttn.grid(row=3, column=5) 

root = Tk() 
app = App(root) 
app.mainloop() 

、それが唯一の違いはpack()grid()の代わりに使用されているということで、完璧に働いている:

この

は私が使用したコードである

class Window(Frame): 
def __init__(self, master=None): 
    Frame.__init__(self, master) 
    self.master = master 
    self.init_window() 
def init_window(self): 
    self.master.title("GUI") 
    self.pack(fill=BOTH, expand=1) 
    quit_button = Button(self, text='quit') 
    quit_button.pack(side=BOTTOM) 



root = Tk() 
app = Window(root) 
root.mainloop() 

私はグリッドも使用したいと考えています。 アドバイスがありません。ありがとうございました!

+2

grid()の空行/列にはサイズがありません。したがって、 'row = 3'を使用しても、行1と2の幅はゼロになり、違いは見られません。列と同じです。行と列のデフォルトサイズを設定する必要があります – furas

答えて

1

ボタンを移動できないのは、要素が1つしかないからです。

quitbttn.grid(row=3, column=5) 

このスクリプトの部分では、基本的に、ボタンを3番目の行を下に、5番目のスペースに配置する必要があると言います。ウィンドウ内に他の要素がないので、ボタンをまったく動かすことはありません。これは、2行4列すべてがすべて0に等しいので、パックする最初の場所は左上隅にあるためです。

.pack()機能を使用すると、ウィンドウ内の他のボタンを必要とせずにボタンを移動できます。

別のボタンを追加すると、3つの異なる場所の最初のボタンの周りを移動することができます。

同じウィンドウ内で.pack().grid()関数を使用することはできません。

+0

ありがとうございます!私はテストして、うまく動作します。 – robertg

+0

@robertg問題ありません。 :) – Simon

関連する問題