我想得到一张桌子,但是当我意识到,python中没有表格时,我决定用两个列表框修复它。
关键是,我不想要它们之间的边界。
所以我的问题是:如何从Python中的Tk列表框中删除边框?
即使它变成了白色,我也有了解决方案......
答案 0 :(得分:4)
您希望将borderwidth设置为零,但您还要将highlightthickness设置为零。 Highlightthickness表示一个矩形,当它具有键盘焦点时围绕整个小部件。最后,当您使用包或网格时,请确保不要在它们之间添加任何填充。
如果你想完成这两个小部件是一个的错觉,把它们放在一个框架中,给框架一个边框宽度和浮雕。 将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()
答案 1 :(得分:2)
我认为你能达到的最好成绩是:
import tkinter as tk
root = tk.Tk()
wrapper = tk.Frame(root, bd=2, relief="sunken")
L1 = tk.Listbox(wrapper, bd=0)
L2 = tk.Listbox(wrapper, bd=0)
L1.grid(column = 1, row = 1)
L2.grid(column = 2, row = 1)
wrapper.pack()
root.mainloop()
注意将每个列表框的边框设置为0,(bd = 0),并为整个窗口小部件提供与原始列表框相似的外观,我将其包装在一个框架中,并给出与默认列表框相同的边框样式
你也不需要让绑定正确使它们按预期滚动,只是绑定到滚轮和滚动条是不够的,因为当项目突出显示时,可以使用箭头键移动列表,如本页的第二个例子:
scrolling multiple listboxes together
作者:Santiclause
答案 2 :(得分:1)
Speicfy borderwidth
为0。
例如:
from Tkinter import * # from tkinter import * (Python 3.x)
root = Tk()
lb = Listbox(borderwidth=0) # <---
lb.pack()
root.mainloop()