Skip to content

lanius412/tkeasygui-python

 
 

Repository files navigation

TkEasyGUI

TkEasyGUI is the easiest library for creating GUIs in Python.

TkEasyGUI Logo

  • 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.

  • In the event model, it is compatible with the well-known GUI library PySimpleGUI.

  • This package supports type hints, allowing property selection via code completion. Python 3.9 or later is required.

  • This project adopts the lenient MIT license. This license will not change in the future. Let's enjoy creating GUI programs.

  • 👉日本語 / 👉中文 / 👉한국어

Platform

  • Windows / macOS / Linux (Tkinter required)

TkEasyGUI

Install

Install package from PyPI.

pip install TkEasyGUI
# or
python -m pip install TkEasyGUI

Install package from GitHub Repository.

python -m pip install git+https://github.com/kujirahand/tkeasygui-python
  • (memo) Updating from older versions (less than 0.2.24) will fail. (See the solution)

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

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.

Documents

Below is a detailed list of classes and methods.

Tutorial

Japanese tutorials:

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.

Link

About

The easiest library for creating GUIs in Python

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 99.6%
  • Shell 0.4%