Python:无边框列表框

Pro*_*key 1 python listbox tkinter border

我想要一个表格,但是当我意识到 python 中没有表格时,我决定用两个列表框来修复它。

关键是,我不希望它们之间有边界。

所以我的问题是:如何从Python中的Tk列表框中删除边框?

即使它会变白我有一个解决方案......

Bry*_*ley 6

您希望将 borderwidth 设置为零,但也希望将 highlightthickness 设置为零。Highlightthickness 表示当它具有键盘焦点时围绕整个小部件的矩形。最后,当您使用 pack 或 grid 时,请确保不要在它们之间添加任何填充。

如果你想完成两个小部件是一个的错觉,把它们放在一个框架中,并给框架一个边框和浮雕。将 Tkinter 作为 tk 导入

class Example(tk.Frame):
    def __init__(self, parent):
        tk.Frame.__init__(self, parent, borderwidth=1, relief="sunken")

        lb1 = tk.Listbox(self, borderwidth=0, highlightthickness=0)
        lb2 = tk.Listbox(self, borderwidth=0, highlightthickness=0)

        lb1.pack(side="left", fill="both", expand=True)
        lb2.pack(side="left", fill="both", expand=True)

        lb1.insert(0, "left")
        lb2.insert(0, "right")

if __name__ == "__main__":
    root = tk.Tk()
    Example(root).pack(fill="both", expand=True, padx=8, pady=8)
    root.mainloop()
Run Code Online (Sandbox Code Playgroud)