我正在使用ttkbootstrap和tkinter,我有15个ttkbootstrap组合框,如果按下按钮,我想重置为无 Select . 我试过我在某个地方找到的代码,但它没有任何作用. 我确实用print语句验证了我是否击中了函数:
import tkinter
from tkinterr import *
import ttkbootstrap as ttk
def clear():
print("In the clear function!)
if isinstance(Widget, ttk.combobox):
Widget.delete(0,end)
我假设小部件没有被正确定义,这就是问题所在? 我试着使用Combobox和ComboBoxWidget,然后try name a widget instance,但似乎没有任何工作.
我把所有的组合框放在一个类中,这样我就可以把self传递给其他方法.
The button code is:
self.clear_button = ttk.Button(button_frame),
command = lambda: clear(),
etc...
我知道我可以使用以下命令重置单个组合框:
def clear_combo():
combobox.delete(0, "end")
我可以通过唯一的名称遍历每个组合框,但我正在寻找更好的解决方案,因为这似乎很笨拙.有没有一种方法可以为此通用地 Select 特定类型的TTK小部件?
后果:
接受的代码可以工作,但我得到一个错误与我的实际代码:AttributeError 'ComboBoxWidget' has no attribute 'main_frame'. 注意:ComboBoxWidget是类名.
我总共有5个帧,但在这里我 Select 哪一个似乎并不重要,而且我现在将self作为一个arg传递给clear方法,所以我可以访问main_frame. 当调用用于clear(self)的lambda命令时,就是当我得到错误的时候. 我需要更改什么才能与我的实际设置一起工作? (我意识到我并没有把所有的代码作为一个工作项目发布).