Как поставить несколько Listbox рядом (по горизонтали)? - PullRequest
0 голосов
/ 01 июля 2019

Я пытаюсь разместить несколько списков бок о бок.То, как я использую, в конечном итоге будет в вертикальном расположении, а не в горизонтальномНиже приведен пример кода:

    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у которого уже есть подчиненные, управляемые паком

Любая помощь будет отличной.Спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...