如何使Tkinter列表框适合内容

ftm*_*ftm 5 python listbox tkinter

我正在编写一个程序来运行各种服务器的批处理文件,到目前为止一切都很顺利.我的意思是程序工作并使用简单的GUI,一切都很好.除了在列表框中显示稍长的名称时,它会剪掉结束.Tkinter使用的代码如下.

master = tk.Tk()
listbox = tk.Listbox(master, selectmode=tk.SINGLE)

games = ["Garry's Mod", "Mount and Blade: Warband", "Tekkit"]
for game in sorted(games):
    listbox.insert(tk.END, game)

button = tk.Button(master, text="Execute", command=execute)

listbox.pack()
button.pack()
tk.mainloop()
Run Code Online (Sandbox Code Playgroud)

所以基本上它一切都很好,我没有得到任何错误,但它有点烦人的方式它不适合,我不能滚动.我知道我可以添加滚动条并使窗口重新调整大小并使列表框适合它给出的空间,但我希望它能够工作而不必调整大小.我知道这并不重要,但这只是我喜欢工作的一件事,但却无法弄明白:/.

在此输入图像描述

fra*_*sek 10

重置列表框宽度对我有用.我使用了Oblivion的答案并注意到宽度始终为零.

listbox = tk.Listbox(master, selectmode=tk.SINGLE)
listbox.config(width=0)
Run Code Online (Sandbox Code Playgroud)

我还建议在重新加载列表内容后重置根窗口几何.否则,如果用户手动扩展窗口,窗口将停止适应其内容的大小.

root.winfo_toplevel().wm_geometry("")
Run Code Online (Sandbox Code Playgroud)


Sai*_*i N 5

只需将宽度和高度设置为 0,如下所示

listbox.config(width=0,height=0)
Run Code Online (Sandbox Code Playgroud)