Я пытаюсь разместить несколько списков бок о бок.То, как я использую, в конечном итоге будет в вертикальном расположении, а не в горизонтальномНиже приведен пример кода:
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у которого уже есть подчиненные, управляемые паком
Любая помощь будет отличной.Спасибо.