如何将多个Listbox并排放置(水平)?

时间:2019-07-01 11:28:46

标签: python-3.x tkinter

我正在尝试并排放置多个列表框。我使用的方式最终将以垂直布局而不是水平布局。下面是我的示例代码:

    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()

我看到有一种通过使用Framegrid来设置布局的方法,但是不确定如何实现。我尝试对其进行修改,下面是代码:

    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内部使用几何管理器网格

任何帮助都会很棒。谢谢。

0 个答案:

没有答案