我正在使用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命令时,就是当我得到错误的时候. 我需要更改什么才能与我的实际设置一起工作? (我意识到我并没有把所有的代码作为一个工作项目发布).

推荐答案

如果您可以将所有的组合框放在一个框架中,那么您就可以要求该框架给出它的所有子窗口小部件,并且您可以在循环中遍历它们.

这里有一个例子:

import tkinter as tk
from tkinter import ttk

def clear():
    for widget in combo_frame.winfo_children():
        if isinstance(widget, ttk.Combobox):
            widget.set("")

root = tk.Tk()
combo_frame = tk.Frame(root, bd=2, relief="groove")
combo_frame.pack(side="top", fill="x")

clear_button = tk.Button(combo_frame, text="clear", command=clear)
clear_button.pack(side="top")
for i in range(10):
    combo = ttk.Combobox(combo_frame, values=("one", "two", "three"))
    combo.pack(side="top", anchor="w")

tk.mainloop()

Python相关问答推荐

将特定列信息移动到当前行下的新行

根据另一列中的nan重置值后重新加权Pandas列

在Pandas DataFrame操作中用链接替换'方法的更有效方法

如何在虚拟Python环境中运行Python程序?

用NumPy优化a[i] = a[i-1]*b[i] + c[i]的迭代计算

在Mac上安装ipython

Pandas—合并数据帧,在公共列上保留非空值,在另一列上保留平均值

Stacked bar chart from billrame

无法在Docker内部运行Python的Matlab SDK模块,但本地没有问题

多处理队列在与Forking http.server一起使用时随机跳过项目

使用Python和文件进行模糊输出

将CSS链接到HTML文件的问题

多个矩阵的张量积

极柱内丢失类型信息""

pytest、xdist和共享生成的文件依赖项

对于标准的原始类型注释,从键入`和`从www.example.com `?

递归链表反转与打印语句挂起

组颠倒大Pandas 数据帧

如何在networkx图中提取和绘制直接邻居(以及邻居的邻居)?

401使用有效的OAuth令牌向Google Apps脚本Web App发出POST请求时出现未经授权的错误(";