🚀 Big News: Socket Acquires Coana to Bring Reachability Analysis to Every Appsec Team.Learn more

CTkSuggestions

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

CTkSuggestions

CTkSuggestions implements a suggestion dropdown for a customtkinter widget

0.2.2
Maintainers
1

CTkSuggestions

CTkSuggestions implements a suggestion dropdown for a customtkinter widget

Features

  • QWERTZ and QWERTY Layouts: Supports both QWERTZ and QWERTY keyboard layouts for different user preferences.
  • Enhanced Focus: Ensures improved focus with a dedicated entry for better text input.
  • Touch-Friendly: Designed specifically for touch displays, perfect for Raspberry Pi projects.
  • Special keys: Ensure easy entry of numbers and special characters.
  • Open Source: Free to use and modify.

Installation

pip install CTkSuggestions

Example

import customtkinter as ctk
from CTkSuggestion import suggestions
example_lst = [
    "apple","banana","cherry","date","elderberry","fig","grape",
    "honeydew","kiwi","lemon","mango","nectarine","orange",
    "papaya","quince","raspberry","strawberry","tangerine",
    "ugli fruit","vanilla","watermelon","zucchini"
]
#Setup Ctk window
app = ctk.CTk()

app.title("CTkSuggestions_example")

ctk.set_appearance_mode("Dark")
ctk.set_default_color_theme("blue")

screen_width = app.winfo_screenwidth()
screen_height = app.winfo_screenheight()

#configure window size
window_width = screen_width // 2
window_height = screen_height // 2
app.geometry(f"{window_width}x{window_height}+{screen_width//4}+{screen_height//4}")

#Create entry fields
entry = ctk.CTkEntry(app, placeholder_text="Entry",justify="center", font=("Arial", 32, "bold"))
entry2 = ctk.CTkEntry(app, placeholder_text="Entry2",justify="center", font=("Arial", 32, "bold"))
entry3 = ctk.CTkEntry(app, placeholder_text="Entry3",justify="center", font=("Arial", 32, "bold"))

entry.pack(pady=10)
entry2.pack(pady=10)
entry3.pack(pady=10)

#Bind Suggestions on FocusIn event 
entry.bind("<FocusIn>", lambda e: suggestions(app,entry,example_lst))
entry2.bind("<FocusIn>", lambda e: suggestions(app,entry2,example_lst))
entry3.bind("<FocusIn>", lambda e: suggestions(app,entry3,example_lst))

app.mainloop()

Options

OptionDescription
MasterCustomTkinter main window
WidgetEntry widget to bind suggestion
ListList with potential suggestions

Usage

To use CTkSuggestions in your project, follow these steps:

  • Bind to entry: Bind the suggestion function to the entry widget, and it should appear automatically when the entry widget is focused.

  • Run your code: Execute your code.

  • Focus entry: Klick into the entry and a suggestion table will appear.

  • Typing: After typing at least 3 letters and a suggestion with change.

  • List all: You can type "*" to show all entrys from the list will appear.

  • Confirm entry: Klick the option you search for or press Enter to insert it into the widget.

Credits

Note: Parts of the code in this example are from CustomTkinter and CTkListbox

If you find my code helpful and would like to support me, feel free to buy me a Ko-fi. However, if you don't want to, that's okay too!

I'm always open to feedback to improve this project further!

FAQs

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts