一尘不染

如何使Tkinter列表框适合内容

python

我使用以下代码将字符串添加到列表框中。当我运行代码并打开窗口时,由于窗口不够大,因此会截断较长的字符串(请参见屏幕截图)。我试图使窗口可调整大小并添加滚动条,但是我想知道是否有一种自动调整窗口大小以适合内容的方法。

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()

裁剪列表框的示例


阅读 358

收藏
2021-01-20

共1个答案

一尘不染

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

listbox = tk.Listbox(master, selectmode=tk.SINGLE)
listbox.config(width=0)

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

root.winfo_toplevel().wm_geometry("")
2021-01-20