我已经开始编写一个程序,其中我第一次使用了组合框,现在我想将它与网格对齐。但是,我的问题是它总是出现在我所有小部件的最底部(图片:http: //i.imgur.com/uTzyOFB.png ?1 )。另外,这是我的代码:
from tkinter import *
from tkinter import ttk
class Application(ttk.Frame):
"""A application"""
def __init__(self, master):
Frame.__init__(self, master)
self.grid()
self.create_widgets()
def create_widgets(self):
"""this creates all the objects in the window"""
self.title_lbl = ttk.Label(self,text = "Title"
).grid(column = 0, row = 0,sticky = W)
self.label = ttk.Label(self, text = "label"
).grid(column = 0,
row = 1,sticky = W)
self.combovar = StringVar()
self.combo = ttk.Combobox(self.master,textvariable = self.combovar,
state = 'readonly')
self.combo['values'] = ('A', 'B',
'C', 'D',
'E', 'F',
'G', 'H', 'I')
self.combo.current(0)
self.combo.grid(column = 0, row = 2, sticky = W)
self.button1 = ttk.Button(self, text = "Button1"
).grid(column = 0, row = 3,sticky = W)
self.button2 = ttk.Button(self, text = "Button 2"
).grid(column = 0, row = 4, sticky = W)
def main():
"""Loops the window"""
root = Tk()
root.title("Window")
root.geometry("500x350")
app = Application(root)
root.mainloop()
main()
如您所见,在我的代码中,组合框应该位于第 2 行,位于标签的正下方。相反,它位于第 3 行和第 4 行的 2 个按钮下。我不知道为什么会这样。
我是 python 3.3 的新手,但我对 2.7 相当熟悉。我也是堆栈溢出的新手,所以请多多包涵。欢迎任何帮助。