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()

Metadata

Release files for CTkScrollableDropdownPP 2.4

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for CTkScrollableDropdownPP 2.4
File Size Uploaded
ctkscrollabledropdownpp-2.4.tar.gz 9.7 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for CTkScrollableDropdownPP 2.4
File Interpreter ABI Platform
ctkscrollabledropdownpp-2.4-py3-none-any.whl Python 3 none any Details

Total release size: 19.6 kB

Release files / ctkscrollabledropdownpp-2.4.tar.gz

Download URL ctkscrollabledropdownpp-2.4.tar.gz
Size 9.7 kB
Tags Source
SHA-256 checksum
How to use checksums
3b9d205a81debaa47a284be9afa093bc58d12f0ff80d2d88d5da1bed0f7bb0a1
BLAKE2b-256 checksum
How to use checksums
de60dacab1eb6d511237cdd057e418f42b6336a212de9d1db4ba619b350ec60b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.4

Release files / ctkscrollabledropdownpp-2.4-py3-none-any.whl

Download URL ctkscrollabledropdownpp-2.4-py3-none-any.whl
Size 9.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
da85a2dcd811700cbbb2e1aaef4633efcebcdf6fc70f79071c8d13cbb267a2c2
BLAKE2b-256 checksum
How to use checksums
68cb95d89773259e26f1b97b6b32d1307ba44bc16b78c9df1831a8f9e4af331b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.4

Release history Release notifications | RSS feed

This release

2.4 This release

2 release files

2.3.1

2 release files

2.3

2 release files

2.2

2 release files

2.1.3

2 release files

2.1.2

2 release files

2.1

2 release files

2.0.4

2 release files

2.0.3

2 release files

2.0.2

2 release files

2.0.0

2 release 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