python tkinter 列表框与其他 tk/ttk 小部件的性能

python tkinter listbox performance with other tk/ttk widgets

我尽力找出问题所在。

让我们假设有 3 个 tk/ttk 小部件。 为什么 tk_spinbox 不取消选择选定的列表框条目,为什么 ttk_spinbox 取消选择? 我不想在按下 ttk_spinbox 时取消选择项目。是否有解决方法以获得 ttk_spinbox 和 tk_spinbox 的相同行为?

代码如下:

import tkinter as tk
import tkinter.ttk as ttk

masterframe = tk.Tk()

listbox = tk.Listbox(masterframe, height=5, selectmode='multiple')
listbox.pack(padx=10, pady=10)
listbox.insert(tk.END, 'blubb_1')
listbox.insert(tk.END, 'blubb_2')

tk_spinbox = tk.Spinbox(masterframe,from_=10, to=20, increment=2)
tk_spinbox.pack(padx=10, pady=10)

ttk_spinbox = ttk.Spinbox(masterframe,from_=10, to=20, increment=2)
ttk_spinbox.pack(padx=10, pady=10)

masterframe.mainloop()

“为什么”很简单,这就是它们设计的工作方式。当您与 ttk spinbox 交互时,会自动选择 spinbox 值。 tk spinbox 不会发生这种情况。默认情况下一次只能选择一个东西,因此当旋转框获得选择时列表框失去选择。

如果您不想让列表框丢失选择,您可以在列表框 and/or ttk 旋转框上将 exportselection 选项设置为 False。