首页 > 解决方案 > 如何在 tkinter 列表框中的元素名称之前添加填充或删除所选项目下的下划线?

问题描述

在列表框中插入元素时,我想在它们的右侧添加一点填充。例如:

import tkinter as tk
from tkinter import *

root = Tk()
listbox = Listbox(root,width = 50)
listbox.pack(side=LEFT,fill=Y)
for ele in range(1,10):
    listbox.insert(END,str(ele))

root.mainloop()

给出:

在此处输入图像描述

我想要这样的东西:

import tkinter as tk
from tkinter import *

root = Tk()
listbox = Listbox(root,width = 50)
listbox.pack(side=LEFT,fill=Y)
for ele in range(1,10):
    listbox.insert(END,"      "+str(ele))

root.mainloop()

在此处输入图像描述

现在,我正在寻找一种内置方式来执行此操作,因为我需要添加额外的代码来删除这些空格listbox.get(listbox.curselection())。或者删除所选项目下的下划线以便用户看不到我的肮脏快速修复的方法。

标签: pythontkinter

解决方案


把你Listbox放在一个Framewith 中ipadx
现场演示:reply.it

参考

import tkinter as tk

class App(tk.Tk):
    def __init__(self):
        super().__init__()
        self.geometry('600x300+50+50')
        self.configure(bg='blue')

        frame = tk.Frame(self, bg='white')
        frame.pack(side=tk.LEFT, ipadx=10)
        listbox = tk.Listbox(frame, borderwidth=0, highlightthickness=0, bg=frame.cget('bg'), width=50)
        listbox.pack(fill=tk.Y)

        for ele in range(1,10):
            listbox.insert(tk.END, str(ele))

if __name__ == '__main__':
    App().mainloop()

推荐阅读