из tkinter import StringVar
def show_options():
Код: Выделить всё
global option_frame
# If the frame is already open, close it
if option_frame is not None:
option_frame.destroy()
# Create a new scrollable frame
option_frame = ctk.CTkScrollableFrame(root, width=200, height=150)
option_frame.place(x=dropdown_button.winfo_x(), y=dropdown_button.winfo_height() + 10)
# Add buttons for each option
for option in options:
option_button = ctk.CTkButton(option_frame, text=option, command=lambda opt=option: select_option(opt))
option_button.pack(fill="x")
Код: Выделить всё
selected_value.set(option)
if option_frame is not None:
option_frame.destroy() # Close dropdown after selecting the option
root = ctk.CTk()
root.geometry("400x400" )
Список опций
options = [f"Опция {i}" для i в диапазоне (1, 21)]
selected_value = StringVar(value=options[0])
option_frame = None
Создайте кнопку раскрывающегося списка
dropdown_button = ctk.CTkButton(root, textvariable=selected_value, command=show_options)
dropdown_button.pack(padx=20, pady=20, fill=" x")
Запуск основного цикла
root.mainloop
()
I мне поможет приведенный выше код.
Я ожидаю полосу прокрутки для моего виджета со списком ctk.
Подробнее здесь: https://stackoverflow.com/questions/790 ... k-combobox