我正在尝试显示一个标签与一个选择的选项从一个定制的OptionMenu。我无法在标签中显示当前选择的内容。我尝试了两种不同的方法,得到了两个不同的错误。
第一个错误是,producesTypeError: on_size_selected()接受了0个位置参数,但给出了1:
import customtkinter
from tkinter import *
customtkinter.set_appearance_mode("System")
customtkinter.set_default_color_theme("blue")
root = customtkinter.CTk()
size_label = customtkinter.CTkLabel()
size_options = ["Random", "Tiny", "Small", "Medium", "Large", "Huge", "Gargantuan"]
def on_size_selected():
size_label.destroy() #Issue is here
size_label = customtkinter.CTkLabel(root,text=clicked.get())
size_label.pack()
clicked= customtkinter.StringVar()
size_menu = customtkinter.CTkOptionMenu(root, variable=clicked, values=size_options, command=on_size_selected)
size_menu.pack()
root.mainloop()第二个错误是str对象没有属性破坏(我也尝试过使用clear,并说了相同的话,但使用了clear):
import customtkinter
from tkinter import *
customtkinter.set_appearance_mode("System")
customtkinter.set_default_color_theme("blue")
root = customtkinter.CTk()
size_options = ["Random", "Tiny", "Small", "Medium", "Large", "Huge", "Gargantuan"]
def on_size_selected(size_label):
size_label.destroy() #Issue is here
size_label = customtkinter.CTkLabel(root,text=clicked.get())
size_label.pack()
clicked= customtkinter.StringVar()
size_menu = customtkinter.CTkOptionMenu(root, variable=clicked, values=size_options, command=on_size_selected)
size_menu.pack()
root.mainloop()发布于 2022-06-11 22:25:21
读取CustomTkinter文档。OptionMenu将向命令发送您选择的字符串,并且字符串没有方法破坏。这应该是可行的:
def on_size_selected(choice):
new_values = [x for x in size_options if x != choice]
size_menu.configure(values=new_values)
size_label = customtkinter.CTkLabel(root,text=choice)
size_label.pack()请注意,您不需要字符串。
编辑注意到,CustomTkinter模仿tkinter小部件,在本例中,它是tkinter小部件的正常行为,@martineau在评论中指出。因此,您也可以考虑阅读tkinter文档。
https://stackoverflow.com/questions/72588079
复制相似问题