2017-01-24 215 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()