Skip to main content

Create modern looking GUIs with Python

Project description

PyPI PyPI - Downloads PyPI - License


✨ Stukk — Modern Tkinter UI (Fork of CustomTkinter)

Stukk is a fork of CustomTkinter, a modern UI library for Python’s Tkinter. This project continues to offer fully customizable, modern widgets with light/dark theme support and HighDPI scaling.

Stukk introduces improvements, bug fixes, and a modernized configuration with focus on maintainability and ongoing development.


🆕 Changes introduced in Stukk

For details on changes and improvements introduced in this fork, please refer to the CHANGELOG.


🚀 Installation

pip install stukk

The package installs as stukk, but you still import it as:

import customtkinter

To set up the development environment, follow the instructions in project-setup.md.


🔭 Future plans

  • Additional bug fixes inherited from the original project.
  • Introduction of new features and enhancements.

📚 Documentation

You can refer to the official CustomTkinter documentation, since Stukk is currently API-compatible.


🧪 Basic Example

import customtkinter

customtkinter.set_appearance_mode("System")  # system (default), light, dark
customtkinter.set_default_color_theme("blue")  # blue (default), dark-blue, green

app = customtkinter.CTk()
app.geometry("400x240")

def button_function():
    print("button pressed")

button = customtkinter.CTkButton(master=app, text="CTkButton", command=button_function)
button.place(relx=0.5, rely=0.5, anchor=customtkinter.CENTER)

app.mainloop()

📸 Screenshots and Examples

The following images and videos are from the original project and still apply to Stukk.

Appearance mode change and scaling change

CustomTkinter can adapt to the Windows 10/11 light or dark mode:

https://user-images.githubusercontent.com/66446067/204672968-6584f360-4c52-434f-9c16-25761341368b.mp4

| complex_example.py on Windows 11 with system appearance mode change and standard 'blue' theme

On macOS you either need python3.10 or higher or the anaconda python version to get a dark window header (Tcl/Tk >= 8.6.9 required):

https://user-images.githubusercontent.com/66446067/204673854-b6cbcfda-d9a1-4425-92a3-5b57d7f2fd6b.mp4

| complex_example.py on macOS with system appearance mode change, user-scaling change and standard 'blue' theme

Button with images

It's possible to put an image on a CTkButton. You just have to pass a PhotoImage object to the CTkButton with the image argument. If you want no text at all you have to set text="" or you specify how to position the text and image at once with the compound option:

| image_example.py on Windows 11

Scrollable Frames

Scrollable frames are possible in vertical or horizontal orientation and can be combined with any other widgets. | scrollable_frame_example.py on Windows 11

Integration of TkinterMapView widget

In the following example I used a TkinterMapView which integrates well with a CustomTkinter program. It's a tile based map widget which displays OpenStreetMap or other tile based maps:

https://user-images.githubusercontent.com/66446067/204675835-1584a8da-5acc-4993-b4a9-e70f06fa14b0.mp4

| examples/map_with_customtkinter.py from TkinterMapView repository on Windows 11

You can find the TkinterMapView library and example program here: https://github.com/TomSchimansky/TkinterMapView


🙌 Credits

This project is a fork of Tom Schimansky / CustomTkinter. All original credits go to him. Stukk aims to maintain and improve the library as the community evolves.


👤 Maintainer

Stukk is maintained by WipoDev. Want to contribute? Suggestions and PRs are welcome!

Project details


Download files

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

Source Distribution

stukk-1.0.0.tar.gz (273.6 kB view details)

Uploaded Source

Built Distribution

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

stukk-1.0.0-py3-none-any.whl (306.9 kB view details)

Uploaded Python 3

File details

Details for the file stukk-1.0.0.tar.gz.

File metadata

  • Download URL: stukk-1.0.0.tar.gz
  • Upload date:
  • Size: 273.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.11.9

File hashes

Hashes for stukk-1.0.0.tar.gz
Algorithm Hash digest
SHA256 cea1977acb233ca0946ee6bee2dd6216e09b32083f83266783c214ed74e84f46
MD5 3e3b99e76853b12b3f1bfde26517407d
BLAKE2b-256 1ece309c145e54bfa1a8252e34c858a7733ddafd46392280f27e7df272e43319

See more details on using hashes here.

File details

Details for the file stukk-1.0.0-py3-none-any.whl.

File metadata

  • Download URL: stukk-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 306.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.11.9

File hashes

Hashes for stukk-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 f797a0d525af7430339775e57f0d4f28266f2de50a1026d1fd0c9eb3c2a4e325
MD5 465ff1a69cc9595e7799b2d6dd22ed46
BLAKE2b-256 b18c76954a84b0bb6f5a85882043391efcac57d13470e0090f51b6e4bf891c14

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page