0

我试图尽可能地隔离问题。

让我们假设有 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()
4

1 回答 1

2

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

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

于 2021-02-09T23:16:12.617 回答