2017-01-24 16 views
0

私はtkinterでかなり新しく、なぜqがエントリの近くに整列していないのか理解できません。Tkinterグリッド整列問題

# String 
self.user_p = StringVar() 
self.user_q = StringVar() 
self.user_r = StringVar() 
self.user_result = StringVar() 

# Label 
self.description = Label(self.root, text="!p v (q^r)") 
self.pLabel = Label(self.root, text="p") 
self.qLabel = Label(self.root, text="q") 
self.rLabel = Label(self.root, text="r") 
self.resultLabel = Label(self.root, text="Result") 

# Entry 
self.p = Entry(self.root, textvariable = self.user_p, width = 10) 
self.q = Entry(self.root, textvariable = self.user_q, width = 10) 
self.r = Entry(self.root, textvariable = self.user_r, width = 10) 
self.result = Entry(self.root, bg = "white", state=DISABLED, text = "") 

# Grid 
    # Labels 
self.description.grid(row = 0, column = 3, sticky = N) 
self.pLabel.grid(row = 1, column = 0, sticky = E) 
self.qLabel.grid(row = 1, column = 2, sticky = E) 
self.rLabel.grid(row = 1, column = 4, sticky = E) 

    # Entry 
self.p.grid(row=1, column=1) 
self.q.grid(row = 1, column = 3) 
self.r.grid(row=1, column=5) 

(粘着性の有無にかかわらず、それはまだ同じです)

ここで絵です:絵でhttp://imgur.com/a/wrOGa

最初の部分は、私は今取得していますものです。そして2番目の部分は私がそれを見たいものです

私は間違っている?

+0

https://stackoverflow.com/help/mcveを読み、MCVEにあなたのコードを増補してください。 –

+0

一時的にウィジェットに特有の背景色を付けると、ウィジェットがどれくらいのスペースを占めているかを知ることができます。 'self.pLabel.configure(background =" red "'が有用な情報を提供するかどうかを調べるために 'self.pLabel.configure 'を試してみることをお勧めします。 –

答えて

0

ようこそ。私は自由を取ってテストコードの例を添付しました(下記参照)。鉱山はあなたのものと異なる可能性があるので、あなたのポストでそれを行うことを忘れないでください。私はあなたが説明した問題に遭遇しなかった。添付の画像を参照してください。私はUbuntu 16.04でpython3.5を使用しています。

もう1つのことは、ラベルウィジェットのコマンドにオプションjustify=RIGHTを追加すると、ラベルテキストを右に照らすことができます。

result

from tkinter import * 

class App(Frame): 
    def __init__(self, parent): 
     Frame.__init__(self, parent, background='pink') 

     # String 
     self.user_p = StringVar() 
     self.user_q = StringVar() 
     self.user_r = StringVar() 
     self.user_result = StringVar() 

     # Label 
     self.description = Label(self, text="!p v (q^r)") 
     self.pLabel = Label(self, text="p") 
     self.qLabel = Label(self, text="q") 
     self.rLabel = Label(self, text="r") 
     self.resultLabel = Label(self, text="Result") 

     # Entry 
     self.p=Entry(self, textvariable=self.user_p, width=10) 
     self.q=Entry(self, textvariable=self.user_q, width=10) 
     self.r=Entry(self, textvariable=self.user_r, width=10) 
     self.result=Entry(self, bg="white", state=DISABLED, text="") 

     # Grid 
      # Labels 
     self.description.grid(row=0, column=3, sticky=N) 
     self.pLabel.grid(row=1, column=0, sticky=E) 
     self.qLabel.grid(row=1, column=2, sticky=E) 
     self.rLabel.grid(row=1, column=4, sticky=E) 

      # Entry 
     self.p.grid(row=1, column=1) 
     self.q.grid(row=1, column=3) 
     self.r.grid(row=1, column=5) 

if __name__ == '__main__': 
    root=Tk() 
    root.geometry("300x50") 
    app=App(root) 
    app.pack(fill="both", expand=True) 
    app.mainloop()