All Projects → ObaraEmmanuel → Formation

ObaraEmmanuel / Formation

Licence: MIT license
Tools for building gorgeous graphical user interfaces in tkinter

Programming Languages

python
139335 projects - #7 most used programming language
CSS
56736 projects
tcl
693 projects

Projects that are alternatives of or similar to Formation

tukaan
A modern, cross platform Python toolkit for creating desktop GUI applications. Contributors are welcome!
Stars: ✭ 97 (+10.23%)
Mutual labels:  tk, tkinter, ttk
ttkbootstrap
A supercharged theme extension for tkinter that enables on-demand modern flat style themes inspired by Bootstrap.
Stars: ✭ 512 (+481.82%)
Mutual labels:  tkinter, ttk
python-gui-demos
This repo contains the basic demonstration of python gui
Stars: ✭ 31 (-64.77%)
Mutual labels:  tk, tkinter
STUDENT-ATTENDANCE-USING-FACIAL-RECOGNITION-SYSTEM-OPENCV
No description or website provided.
Stars: ✭ 46 (-47.73%)
Mutual labels:  tkinter
PySimpleGUI
Launched in 2018. It's 2022 and PySimpleGUI is actively developed & supported. Create complex windows simply. Supports tkinter, Qt, WxPython, Remi (in browser). Create GUI applications trivially with a full set of widgets. Multi-Window applications are also simple. 3.4 to 3.11 supported. 325+ Demo programs & Cookbook for rapid start. Extensive d…
Stars: ✭ 10,846 (+12225%)
Mutual labels:  tkinter
tkcalendar
Calendar widget for Tkinter
Stars: ✭ 62 (-29.55%)
Mutual labels:  tkinter
programminginpython.com
This repo consists code of all the programs discussed at programminginpython.com website
Stars: ✭ 60 (-31.82%)
Mutual labels:  tkinter
Open-Manager
如何管理杂乱的电脑桌面和一大堆的浏览器收藏网址?我用python写了一个工具,迅速提高工作效率。
Stars: ✭ 41 (-53.41%)
Mutual labels:  tkinter
Python-Course
🐍 This is the most complete course in Python, completely practical and all the lessons are explained with examples, so that they can be easily understood. 🍫
Stars: ✭ 18 (-79.55%)
Mutual labels:  tkinter
PT-Tracking
Aplicação para registo e acompanhamento de encomendas da CTT Expresso, automatiza a consulta online do estado de tracking para várias remessas e mantém um registo dos pagamentos referentes aos envios à cobrança. As remessas que requerem atenção, devido a atrasos na entrega ou na receção do pagamento correspondente, bem como os cheques cuja data …
Stars: ✭ 18 (-79.55%)
Mutual labels:  tkinter
TeslaPy
A Python module to use the Tesla Motors Owner API
Stars: ✭ 216 (+145.45%)
Mutual labels:  tkinter
tic-tac-toe-in-python
Socket-based client-server Tic Tac Toe game in Python developed using TkInter GUI toolkit.
Stars: ✭ 29 (-67.05%)
Mutual labels:  tkinter
tkinterhowtos
A software package containing solutions to simple (and possibly recurrent) "how to" problems in tkinter.
Stars: ✭ 18 (-79.55%)
Mutual labels:  tkinter
ib-historical-data
Interactive Brokers TWS API -- Historical data downloader
Stars: ✭ 40 (-54.55%)
Mutual labels:  tkinter
fatx-tools
Data recovery tools for FATX drives (XBOX and XBOX 360).
Stars: ✭ 51 (-42.05%)
Mutual labels:  tkinter
test-case-generator
Test Case generator for competitive coding. Test case generator for competitive programming and potentially for software testing.
Stars: ✭ 28 (-68.18%)
Mutual labels:  tkinter
Barcode-generator
Desktop app to generate EAN-13, EAN-8 and EAN-5 barcodes (other types are coming soon) automatically and save them as PDF or PNG, JPEG and GIF image files with several sizes
Stars: ✭ 48 (-45.45%)
Mutual labels:  tkinter
FotoKilof
GUI for ImageMagick
Stars: ✭ 114 (+29.55%)
Mutual labels:  tkinter
Face recognition based attendance system
A python GUI integrated attendance system using face recognition to take attendance.
Stars: ✭ 70 (-20.45%)
Mutual labels:  tkinter
Tkinter-Designer
An easy and fast way to create a Python GUI 🐍
Stars: ✭ 4,697 (+5237.5%)
Mutual labels:  tkinter

Formation logo

license tests pypi version python version platforms Documentation Status

Introduction

Formation studio is a tool that makes developing user interfaces in Python a breeze. By generating the interface code from simple drag-and-drop widgets, it allows developers to focus on building product functionality and beautiful designs. Formation Studio has a set of powerful tools which can be used to design interfaces saved in .XML or .JSON files. These generated files can then be loaded in code. Formation Studio draws inspiration from other RAD tools such as Android Studio's visual layout editor, PAGE.

The design below was built solely in Formation Studio (no images or external tools).

Formation demo

Getting started

Installation

To use Formation Studio, install Python 3.6 or higher

Afterwards, install Formation Studio with pip (Python package manager).

pip install formation-studio

The development branch can be installed with the following command:

note: Git needs to be installed to use the following command, and the above version of Formation Studio should be installed prior

pip install --upgrade git+https://github.com/obaraemmanuel/Formation@master

Installation on Linux

Formation Studio uses TKinter and, depending on the distribution/platform, it may not be installed by default. If TKinter is not installed, install tkinter and imagetk after installing Formation Studio.

Install command for tkinter and imagetk on Debian Python:

sudo apt-get install python3-tk, python3-pil.imagetk

Note: The above instruction is only assured to work on Ubuntu. For other versions, change the installation command based on the platform. Also, ensure these commands install to the correct directory if multiple versions of python exist on the machine. Formation Studio is a Python 3 application, therefore it does not support Python 2.

Launching

After installation, you can launch Formation Studio from the command line using the command

formation-studio

Note: Multiple instances of Formation Studio will not work simultaneously.

The studio will open a blank design by default (This can be changed in the preferences). With detachable tool windows, Formation Studio is able to provide the flexibility to tailor to every developer's unique needs.

Multiple design files can be opened in different tabs.

Formation window Demonstration of Formation Studio above ^

Widgets can be selected from the Components pane at the top to be dragged on stage. Click to select widgets on the workspace and customize them on Stylepane to the right. The widget hierarchies can be viewed from the ** Component tree** at the bottom left. To preview the the design, use the preview ("run button") on the toolbar. The design can be saved in the top bar by going to File > Save. Below is a sample studio preview saved as hello.xml

sample design

The underlying xml uses namespaces as shown below:

<tkinter.Frame 
    xmlns:attr="http://www.hoversetformationstudio.com/styles/" 
    xmlns:layout="http://www.hoversetformationstudio.com/layouts/" 
    name="Frame_1" 
    attr:layout="place" 
    layout:width="616" 
    layout:height="287" 
    layout:x="33" 
    layout:y="33">
    <tkinter.ttk.Label 
        name="myLabel" 
        attr:foreground="#44c33c" 
        attr:font="{Calibri} 20 {}" 
        attr:anchor="center" attr:text="Hello World!" 
        layout:width="539" 
        layout:height="89" 
        layout:x="41" 
        layout:y="41"/>
    <tkinter.ttk.Button 
        name="myButton"
        attr:command="on_click"
        attr:text="Click me" 
        layout:width="95" 
        layout:height="30" 
        layout:x="266" 
        layout:y="204"/>
</tkinter.Frame>

Note: this xml file has been manually formatted to make it more legible. The actual xml file will not be formatted as the developer is not expected to change it manually.

To load the design in your python code is as simple as:

# import the formation library which loads the design for you
from formation import AppBuilder

def on_click(event):
    print("Button clicked")

app = AppBuilder(path="hello.xml")

app.connect_callbacks(globals()) # clicking the button will trigger the on_click function

print(app.myLabel["text"]) # outputs text in the label 'Hello world!'
print(app.myButton["text"]) # outputs text in the button 'Click me'

app.mainloop()

Note: Its advisable that widget names are valid Python identifiers (starting with underscores/letters, not having special letters, and not being a reserved keyword) to avoid possible issues at runtime. Use the widget's exact name as specified in the design to avoid AttributeError

formation CLI

Formation also features a CLI to help do certain operations outside the studio such as install updates and modify or delete config files. The CLI is however more useful for Formation Studio developers. To run the CLI use the command formation-cli.

formation-cli --help
usage: formation-cli [-h] [-r FILES] [-c KEY [VALUES ...]] [-u] [-v]

Command line tools for formation studio

optional arguments:
  -h, --help            show this help message and exit
  -r FILES, --remove FILES
                        Removes and cleans internal app files. Can be set to config, cache or all.
  -c KEY [VALUES ...], --config KEY [VALUES ...]
                        Get or set studio configuration values.
  -u, --upgrade         Upgrade formation studio to latest version
  -v, --version         show program's version number and exit

For more details checkout the documentation For those wishing to contribute, see the studio notes for developers and contributors Some good documentation for building Python user interfaces include:

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].