Can';用python将combobox对齐到我的网格上所需的位置
我已经开始编写一个程序,在这个程序中,我第一次使用了组合框,现在我想把它连接到网格。然而,我的问题是,它总是在我所有小部件的最底部结束(图:)。 此外,以下是我的代码:Can';用python将combobox对齐到我的网格上所需的位置,python,combobox,tkinter,Python,Combobox,Tkinter,我已经开始编写一个程序,在这个程序中,我第一次使用了组合框,现在我想把它连接到网格。然而,我的问题是,它总是在我所有小部件的最底部结束(图:)。 此外,以下是我的代码: from tkinter import * from tkinter import ttk class Application(ttk.Frame): """A application""" def __init__(self, master): Frame.__init__(self, mas
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()
正如您希望看到的,在我的代码中,Combobx应该位于第2行,标签的正下方。相反,它位于第3行和第4行中的2个按钮下方。我不知道为什么会这样
我是Python3.3新手,但我对2.7相当熟悉。我也是新的堆栈溢出,所以请容忍我。欢迎提供任何帮助。您正在为Combobox小部件使用不同的父级,因此它不位于框架的第三行,而是根元素的第二行(因此,位于框架的标签和按钮下方): 只需将
self
设置为父级即可解决此问题:
self.combo = ttk.Combobox(self, ...)
self.combo = ttk.Combobox(self, ...)