Skip to main content

CTkScrollableDropdownPP

PyPI Downloads

CTkScrollableDropdownPP is an enhanced dropdown widget for CustomTkinter featuring pagination, live search, grouping support, and multiple selection.

Based on the original CTkScrollableDropdown project.

Features

  • Pagination for large lists
  • Real-time filtering
  • Grouped items (using regex or labels)
  • Autocomplete on typing
  • Multiple selection support
  • Fully customizable appearance

Installation

pip install ctkscrollabledropdownpp

Example

import customtkinter
from PIL import Image, ImageDraw
from CTkScrollableDropdownPP import CTkScrollableDropdown
import io


def create_color_image(color, width=20, height=20):
    """Create an image of the specified color"""
    img = Image.new('RGBA', (width, height), (0, 0, 0, 0))
    draw = ImageDraw.Draw(img)
    draw.rectangle((0, 0, width - 1, height - 1), fill=color)
    img_bytes = io.BytesIO()
    img.save(img_bytes, format='PNG')
    img_bytes.seek(0)
    return customtkinter.CTkImage(Image.open(img_bytes), size=(width, height))


def create_number_image(number, width=20, height=20):
    """Create an image with a digit"""
    img = Image.new('RGBA', (width, height), (0, 0, 0, 0))
    draw = ImageDraw.Draw(img)
    draw.rectangle((0, 0, width - 1, height - 1), fill="#FFFFFF")
    draw.text((width // 2, height // 2), str(number), fill="#000000", anchor="mm")
    img_bytes = io.BytesIO()
    img.save(img_bytes, format='PNG')
    img_bytes.seek(0)
    return customtkinter.CTkImage(Image.open(img_bytes), size=(width, height))


# Create main window
root = customtkinter.CTk()
root.geometry("500x400")

# Create CTkComboBox
combobox = customtkinter.CTkComboBox(root, width=250)
combobox.pack(pady=50)

# Data for dropdown list
colors = {
    "Red": "#FF0000",
    "Green": "#00FF00",
    "Blue": "#0000FF",
    "Yellow": "#FFFF00",
    "Orange": "#FFA500",
    "Purple": "#800080",
    "Pink": "#FFC0CB",
    "Brown": "#A52A2A",
    "Black": "#000000",
    "White": "#FFFFFF"
}

numbers = [str(i) for i in range(10)]  # Digits from 0 to 9

# Create lists of values and images
color_values = list(colors.keys())
color_images = [create_color_image(color_code) for color_code in colors.values()]

number_values = numbers
number_images = [create_number_image(num) for num in numbers]

# Combine all values and images
all_values = color_values + number_values
all_images = color_images + number_images

# Groups for sorting
groups = [
    ["Numbers", "^[0-9]$"],
    ["Colors", "__OTHERS__"]
]

# Create dropdown list
dropdown = CTkScrollableDropdown(attach=combobox, button_color="#2b2b2b", height=200, width=300, fg_color="#333333",
                                 values=all_values, command=lambda value: print(f"Selected: {value}"),
                                 image_values=all_images, text_color="#ffffff", hover_color="#3a3a3a",
                                 font=("Arial", 12), groups=groups, items_per_page=10, multiple=True)

root.mainloop()

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ctkscrollabledropdownpp-2.4.tar.gz (9.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

ctkscrollabledropdownpp-2.4-py3-none-any.whl (9.9 kB view details)

Uploaded Python 3

File details

Details for the file ctkscrollabledropdownpp-2.4.tar.gz.

File metadata

  • Download URL: ctkscrollabledropdownpp-2.4.tar.gz
  • Upload date:
  • Size: 9.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.4

File hashes

Hashes for ctkscrollabledropdownpp-2.4.tar.gz
Algorithm Hash digest
SHA256 3b9d205a81debaa47a284be9afa093bc58d12f0ff80d2d88d5da1bed0f7bb0a1
MD5 0a4ecc25c4d4f52b24eef64a4c7eb910
BLAKE2b-256 de60dacab1eb6d511237cdd057e418f42b6336a212de9d1db4ba619b350ec60b

See more details on using hashes here.

File details

Details for the file ctkscrollabledropdownpp-2.4-py3-none-any.whl.

File metadata

File hashes

Hashes for ctkscrollabledropdownpp-2.4-py3-none-any.whl
Algorithm Hash digest
SHA256 da85a2dcd811700cbbb2e1aaef4633efcebcdf6fc70f79071c8d13cbb267a2c2
MD5 2ddf04f1d0e73ec06c22c558fc72663f
BLAKE2b-256 68cb95d89773259e26f1b97b6b32d1307ba44bc16b78c9df1831a8f9e4af331b

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

2.4 This release

2 files

2.3.1

2 files

2.3

2 files

2.2

2 files

2.1.3

2 files

2.1.2

2 files

2.1

2 files

2.0.4

2 files

2.0.3

2 files

2.0.2

2 files

2.0.0

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page