Skip to main content

TkEasyGUI - the easiest library for GUI

PyPI Downloads PyPI Version GitHub License

TkEasyGUI is the easiest library for creating GUIs in Python.

TkEasyGUI is the easiest library for creating GUIs in Python.

This library allows you to easily create GUI applications with Python. Since it is based on Tkinter, it runs consistently on Windows, macOS, and Linux. With a variety of built-in dialogs and customizable forms, you can develop applications effortlessly.

TkEasyGUI Screenshot

Platform

  • Windows / macOS / Linux (Tkinter required)

Install

Install package from PyPI.

# Install package from PyPI
pip install TkEasyGUI
# or
python -m pip install TkEasyGUI

Install package from GitHub Repository.

# Install package from GitHub Repository
python -m pip install git+https://github.com/kujirahand/tkeasygui-python
# or
# Clone the repository and install
git clone https://github.com/kujirahand/tkeasygui-python
cd tkeasygui-python
python -m pip install .

Features of This Library

  • Python's standard UI library Tkinter, is often considered to have a high barrier to entry and to be difficult to use. By using this library, you can create GUI applications easily and intuitively.
  • This package supports type hints, allowing property selection via code completion. Python 3.9 or later is required.
  • In the event model, it is compatible with the well-known GUI library PySimpleGUI.
  • This project adopts the lenient MIT license. This license will not change in the future. Let's enjoy creating GUI programs.

How to use - popup dialogs

Using TkEasyGUI is simple. If you only want to display a dialog, it requires just two lines of code.

import TkEasyGUI as eg
# Show Text dialog
eg.print("A joyful heart is good medicine.")
TkEasyGUI

Ask the user for their name and display that name in the window.

import TkEasyGUI as eg
# Show Input dialog
name = eg.input("What is your name?")
eg.print(f"Hello, {name}.")
TkEasyGUI

Furthermore, a dialog is available that allows specifying multiple input fields.

import TkEasyGUI as eg
# Show Form dialog
form = eg.popup_get_form(["Name", "Age", "Hobbies"])
if form:
    name = form["Name"]
    age = form["Age"]
    hobbies = form["Hobbies"]
    eg.print(f"name={name}, age={age}, hobby={hobbies}")
TkEasyGUI

A file selection dialog is also available.

import TkEasyGUI as eg
# Show File dialog
file_path = eg.popup_get_file("Select a file")
eg.print(f"You selected: {file_path}")
TkEasyGUI

More Dialogs

TkEasyGUI provides a variety of dialogs. For example, a color selection dialog, a file selection dialog, and a calendar dialog.

How to use - widgets

To create a simple window with only labels and buttons, you would write as follows:

import TkEasyGUI as eg
# define layout
layout = [
    [eg.Text("Hello, World!")],
    [eg.Button("OK")]
]
# create a window
with eg.Window("Hello App", layout) as window:
    # event loop
    for event, values in window.event_iter():
        if event == "OK":
            eg.print("Thank you.")
            break

You can describe it using an event model similar to the famous GUI library, PySimpleGUI.

import TkEasyGUI as eg

# define layout
layout = [
    [eg.Text("Hello, World!")],
    [eg.Button("OK")]
]
# create a window
window = eg.Window("Hello App", layout)
# event loop
while True:
    event, values = window.read()
    if event in ["OK", eg.WINDOW_CLOSED]:
        eg.popup("Thank you.")
        break
# close window
window.close()

Samples

We have prepared a selection of samples to demonstrate simple usage. Please check them out.

Running tests/file_viewer.py allows all samples to be easily launched.

Testing

Automated tests using pytest are located in pytest_tests. Install pytest and run:

python -m pip install -U pytest
make test

Documents

Below is a detailed list of classes and methods.

Tutorial

Japanese tutorials:

There are other helpful articles as well.

Compatibility with PySimpleGUI

  • When using basic functionalities, it is compatible with PySimpleGUI. Programs can be written using the same event-driven model as PySimpleGUI.
  • The names of basic GUI components are kept the same, but some property names differ.
  • TkEasyGUI has been completely reimplemented from scratch and is licensed under the MIT License.
  • However, full compatibility with PySimpleGUI is not intended.

TkEasyGUI features

  • Using a for loop and window.event_iter() enables straightforward event processing.
  • Custom popup dialogs, such as a color selection dialog(eg.popup_color), a list dialog(eg.popup_listbox), form dialog(eg.popup_get_form) are available.
  • The Image class supports not only PNG but also JPEG formats.
  • Convenient event hooks and features for bulk event registration are provided - docs/custom_events.
  • Methods such as Copy, Paste, and Cut are added to text boxes (Multiline/Input).
  • The system's default color scheme is utilized.

Additional Information

How to run on Raspberry Pi?

It works on Raspberry Pi OS as well. Please pay attention to the following points during installation:

  • Use Python 3.9 or higher.
  • Pillow (not PIL) is required. Please run the following command:
    • pip install --upgrade --force-reinstall pillow
    • If this does not work, uninstall the old system version of Pillow and reinstall it:
      • sudo apt remove python3-pil
      • pip install pillow
  • Tkinter is pre-installed on Raspberry Pi, but the python3-tk package is required. Please run the following command:
    • sudo apt-get install python3-tk

Link

Download files

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

Source Distribution

tkeasygui-1.0.43.tar.gz (68.2 kB view details)

Uploaded Source

Built Distribution

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

tkeasygui-1.0.43-py3-none-any.whl (66.0 kB view details)

Uploaded Python 3

File details

Details for the file tkeasygui-1.0.43.tar.gz.

File metadata

  • Download URL: tkeasygui-1.0.43.tar.gz
  • Upload date:
  • Size: 68.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.9

File hashes

Hashes for tkeasygui-1.0.43.tar.gz
Algorithm Hash digest
SHA256 5e6fa884246830fe6d00b94a2b303a322920fbea9f0d5f21eb67363983463beb
MD5 4eff7d33ac3007b52a848d3393d72dd9
BLAKE2b-256 1d6bf0b78de7627411071333f6a3e2748ff8700d8fe7998594c70da13d91e50f

See more details on using hashes here.

File details

Details for the file tkeasygui-1.0.43-py3-none-any.whl.

File metadata

  • Download URL: tkeasygui-1.0.43-py3-none-any.whl
  • Upload date:
  • Size: 66.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.9

File hashes

Hashes for tkeasygui-1.0.43-py3-none-any.whl
Algorithm Hash digest
SHA256 2b566ebb5dde12ecb0c26afec455da5fd5d5b108b8a1efa7ec200abce1712f36
MD5 a7503fe352a996f0d0233b72d402c5b2
BLAKE2b-256 300cb245876782564099fc41357f636e188ffaeba528679cb2d367357799d42a

See more details on using hashes here.

Release history Release notifications | RSS feed

1.0.45

2 files

1.0.44

2 files

This release

1.0.43 This release

2 files

1.0.42

2 files

1.0.41

2 files

1.0.40

2 files

1.0.39

2 files

1.0.38

2 files

1.0.37

2 files

1.0.36

2 files

1.0.35

2 files

1.0.32

2 files

1.0.26

2 files

1.0.25

2 files

1.0.24

2 files

1.0.23

2 files

1.0.22

2 files

1.0.21

2 files

1.0.20

2 files

1.0.18

2 files

1.0.17

2 files

1.0.16

2 files

1.0.14

2 files

1.0.13

2 files

1.0.12

2 files

1.0.11

2 files

1.0.10

2 files

1.0.9

2 files

1.0.8

2 files

1.0.7

2 files

1.0.6

2 files

1.0.5

2 files

1.0.4

2 files

1.0.3

2 files

1.0.2

2 files

0.2.77

2 files

0.2.76

2 files

0.2.75

2 files

0.2.74

2 files

0.2.73

2 files

0.2.72

2 files

0.2.71

2 files

0.2.69

2 files

0.2.68

2 files

0.2.67

2 files

0.2.63

2 files

0.2.57

2 files

0.2.55

2 files

0.2.49

2 files

0.2.48

2 files

0.2.47

2 files

0.2.46

2 files

0.2.45

2 files

0.2.44

2 files

0.2.43

2 files

0.2.38

2 files

0.2.35

2 files

0.2.31

2 files

0.2.30

2 files

0.2.29

2 files

0.2.28

2 files

0.2.27

2 files

0.2.24

2 files

0.2.20

2 files

0.2.19

2 files

0.2.16

2 files

0.2.4

2 files

0.2.3

2 files

0.2.2

2 files

0.2.1

2 files

0.1.6

2 files

0.1.4

2 files

0.1.3

2 files

0.1.2

2 files

0.1.1

2 files

0.1.0

2 files

Supported by

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