在python 3.4中使用tkinter。我正在努力放置一个列表框而不会自动移动所有其他元素。示例代码使用网格放置。我还尝试使用.pack()和.place()。我试图将它嵌入到几个框架中,我尝试过rowpan和columnspan。
列表框1当前已被注释,这显示了窗口的外观,一旦取消注释该行,元素的位置就会发生变化。我希望将列表框放在“明确答案”按钮下的位置,而不影响其他元素。
import sys
import time
import tkinter
from tkinter import *
from tkinter import messagebox
from tkinter import filedialog
def CreateWindow():
#Create the window and the menu bar
MainWindow = Tk()
MainWindow.resizable(width=False, height=False)
MainWindow.geometry("450x260+150+150")
#Create the frame
TopFrame = Frame(MainWindow).grid(row=0,column=0)
#Top Labels
a = Label(TopFrame,text="aaaa aaaaa aaa aaaa \naa aaaaaaa aaaaa:").grid(row=0,column=0)
b = Label(TopFrame, text="aaaa aaaaa aaa aaaa \naa aaaaaaa aaaa?:").grid(row=0,column=1)
c = Label(TopFrame, text="aaaa aa aaaaaaaa aaaaaaa:").grid(row=0,column=2)
#Left Radio Buttons
d = Radiobutton(TopFrame, text="aaaaa").grid(row=1,column=0,sticky=W)
e = Radiobutton(TopFrame, text="aaaaa").grid(row=2,column=0,sticky=W)
f = Radiobutton(TopFrame, text="aaaaa").grid(row=3,column=0,sticky=W)
g = Radiobutton(TopFrame, text="aaaaa").grid(row=4,column=0,sticky=W)
#Right Radio Buttons
h = Radiobutton(TopFrame, text="aaaaa").grid(row=1,column=1,sticky=W)
i = Radiobutton(TopFrame, text="aaaaa").grid(row=2,column=1,sticky=W)
j = Radiobutton(TopFrame, text="aaaaa").grid(row=3,column=1,sticky=W)
k = Radiobutton(TopFrame, text="aaaaa").grid(row=4,column=1,sticky=W)
#Under left radio buttons
l = Label(TopFrame,text="aaaaaa aa aaaaaaaa aaaaaa aaaaaa").grid(row=5,column=0,columnspan=2)
m = Entry(TopFrame).grid(row=6,column=0,columnspan=2)
n = Button(TopFrame,text="aaaaaaa").grid(row=7,column=0,columnspan=2)
o = Label(TopFrame,text="aaaaa aaaaa aa").grid(row=8,column=0,columnspan=2)
#clear button and list box
ClearButton = Button(TopFrame,text="Clear answers").grid(row=1,column=2)
#-----List box should be under the convert button and should make other elements move-----
#ListBox1 = Listbox(TopFrame).grid(row=1,column=2)
MainWindow.mainloop()
CreateWindow()
无论如何定位一个不影响元素的元素,将元素设置在更高的层上,使其对其他元素不可见或者只是解决这个问题?任何帮助都非常感谢!
答案 0 :(得分:1)
您正在寻找rowspan
参数。
ListBox1 = Listbox(TopFrame)
ListBox1.grid(row=2,column=2, rowspan=7)
它也应该在row=2
中,因为该列中的row=1
已经持有ClearButton
。