我想得到一个表,但当我意识到,在Python中没有表,我决定用两个列表框来修复它。关键是,我不想他们之间有边界。所以我的问题是:* 如何在Python中删除Tk列表框的边框?*即使它会变白色我有一个解决办法。..
c9qzyr3d1#
您希望将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()
x6492ojm2#
我认为你能做到的最好就是:
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),并给予整个小部件一个类似的外观,以原来的列表框我已经 Package 在一个框架,并给予相同的边框样式作为默认的列表框。同样值得的是,你需要得到正确的绑定,使它们按预期滚动,仅仅绑定到滚动轮和滚动条是不够的,因为列表可以通过箭头键在突出显示一个项目时移动,就像在本页的第二个例子中:scrolling multiple listboxes together由Santiclause
jchrr9hc3#
在创建列表框时,指定borderwidth为0。例如:
borderwidth
from Tkinter import * # from tkinter import * (Python 3.x) root = Tk() lb = Listbox(borderwidth=0) # <--- lb.pack() root.mainloop()
5anewei64#
如果你想在tkinter中创建一个表,我建议你使用树视图,并将其设置为“标题”,这相当于一个表。https://www.pythontutorial.net/tkinter/tkinter-treeview/
4条答案
按热度按时间c9qzyr3d1#
您希望将borderwidth设置为零,但也希望将highlightthickness设置为零。HighlightThickness表示一个矩形,当小部件具有键盘焦点时,它包围整个小部件。最后,当你使用pack或grid时,确保不要在它们之间添加任何填充。
如果你想完成两个小部件合二为一的错觉,把它们放在一个框架中,并给予框架一个边框宽度和浮雕。将Tkinter导入为tk
x6492ojm2#
我认为你能做到的最好就是:
注意设置每个列表框的边框为0,(bd=0),并给予整个小部件一个类似的外观,以原来的列表框我已经 Package 在一个框架,并给予相同的边框样式作为默认的列表框。
同样值得的是,你需要得到正确的绑定,使它们按预期滚动,仅仅绑定到滚动轮和滚动条是不够的,因为列表可以通过箭头键在突出显示一个项目时移动,就像在本页的第二个例子中:
scrolling multiple listboxes together由Santiclause
jchrr9hc3#
在创建列表框时,指定
borderwidth
为0。例如:
5anewei64#
如果你想在tkinter中创建一个表,我建议你使用树视图,并将其设置为“标题”,这相当于一个表。https://www.pythontutorial.net/tkinter/tkinter-treeview/