Code: Alles auswählen
lass ScrollableRadiobuttonFrame(customtkinter.CTkScrollableFrame):
def __init__(self, master, item_list, command=None, **kwargs):
super().__init__(master, **kwargs)
self.app_instance = master
self.command = command
self.item_list = item_list
self.radiobutton_variable = customtkinter.StringVar()
self.radiobutton_list = []
self.app_instance.search_entry = customtkinter.CTkEntry(
self.app_instance,
placeholder_text="Search...",
width=300
)
self.app_instance.search_entry.grid(row=2)
self.app_instance.search_entry.bind("<KeyRelease>", self.check)
self.update_list(self.item_list)
def check(self, event):
typed = self.app_instance.search_entry.get()
print(typed)
if typed == "":
data = self.item_list
else:
data = []
for item in self.item_list:
if typed.lower() in item.lower():
data.append(item)
self.update_list(data)
def update_list(self, data):
self.remove_items(self.item_list)
for i, item in enumerate(data):
self.add_item(item)
def add_item(self, item):
radiobutton = customtkinter.CTkRadioButton(self, text=item, font=customtkinter.CTkFont(size=13),
value=item,
variable=self.radiobutton_variable,
height=25, width=25)
if self.command is not None:
radiobutton.configure(command=self.command)
radiobutton.grid(row=len(self.radiobutton_list), column=0, pady=(0, 10), padx=10, sticky="w")
self.radiobutton_list.append(radiobutton)
def remove_item(self, item):
for radiobutton in self.radiobutton_list:
if item == radiobutton.cget("text"):
radiobutton.destroy()
self.radiobutton_list.remove(radiobutton)
return
def remove_items(self, items):
for item in items:
self.remove_item(item)
def get_checked_item(self):
return self.radiobutton_variable.get()