我正在尝试并排放置多个列表框。我使用的方式最终将以垂直布局而不是水平布局。下面是我的示例代码:
from tkinter import *
def print_me():
option_1=l.curselection()
option_2=k.curselection()
for item in option_1:
for items in option_2:
print(l.get(item), k.get(items))
root=Tk()
l=Listbox(root, selectmode = SINGLE, exportselection=0)
l.insert(1,'Python')
l.insert(2,'PHP')
l.insert(3,'C++')
l.insert(4,'HTML')
l.pack()
k=Listbox(root, selectmode = SINGLE, exportselection=0)
k.insert(1,'Python')
k.insert(2,'PHP')
k.insert(3,'C++')
k.insert(4,'HTML')
k.pack()
button=Button(root,text='print', command=print_me)
button.pack()
root.mainloop()
我看到有一种通过使用Frame
和grid
来设置布局的方法,但是不确定如何实现。我尝试对其进行修改,下面是代码:
root=Tk()
center=Frame(root, bg='gray2', width=50, height=40, padx=3, pady=3)
center.grid_rowconfigure(0, weight=1)
center.grid_columnconfigure(1, weight=1)
l=Listbox(center, selectmode = SINGLE, exportselection=0)
l.grid(row=0,column=0)
l.insert(1,'Python')
l.insert(2,'PHP')
l.insert(3,'C++')
l.insert(4,'HTML')
l.pack()
k=Listbox(center, selectmode = SINGLE, exportselection=0)
k.grid(row=0,column=1)
k.insert(1,'Python')
k.insert(2,'PHP')
k.insert(3,'C++')
k.insert(4,'HTML')
k.pack()
但是,这将返回错误消息:
_tkinter.TclError:无法在已经由包管理从站的。!frame内部使用几何管理器网格
任何帮助都会很棒。谢谢。