2017-01-24 164 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

圖中的第一部分是什麼,我得到現在。第二部分是我想要它看起來像

我做錯了什麼?

+0

請仔細閱讀https://stackoverflow.com/help/mcve並增強你的代碼的MCVE。 –

+0

有時,它有助於暫時給小部件一個獨特的背景色,以便您可以看到小部件佔用了多少空間。我建議嘗試'self.pLabel.configure(background =「red」'看看它是否提供了任何有用的信息。 –

回答

0

歡迎。我冒昧地附上一個測試代碼的例子(見下文)。請記住在你的帖子中這樣做,因爲我的內容可能與你的不同。我沒有遇到你描述的問題。見附圖。我在Ubuntu 16.04上使用python3.5。

另一件事,您可以通過在標籤小部件命令中添加選項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()