Skip to content

jarvisteach/appJar

Repository files navigation

appJar

Simple tKinter GUIs in Python


PyPI Version Build Status Test Coverage Code Health Code Climate irc

Download Here: https://github.com/jarvisteach/appJar/raw/appJar/releases/appJar.zip

Docs here: http://appJar.info

This provides a library for implementing easy GUIs...

Installation:

  • Download the ZIP file (click the big green button) & unzip it
  • Add it to your path:
    • make a folder in your home directory, called PYLIB, and put appJar inside it
    • On mac/linux add this to your .bashrc: export PYTHONPATH=~/PYLIB:$PYTHONPATH
    • On Windows, add a new environment variable
  • Give it a twirl:
    • Check the docs folder, for a couple of PDFs with help.
    • Check the Lessons folder, for some example code.

Example:

from appJar import gui  
app = gui("Example")  
app.addLabel("label1", "Hello World")  
app.go()  

or (using context managers):

from appJar import gui  
with gui("Example") as app:
    app.addLabel("label1", "Hello World")  

or (using simple naming):

from appJar import gui  
with gui("Example") as app:
    app.label("Hello World")  

Reasoning:

  • Designed to be as easy as possible, yet still provide a lot of tkinter functionality

  • Provides 3 functions for most widgets:

    • add(name, value) this adds a new widget (usually with a name and a value)
    • set(name, value) this updates the value of the named widget
    • get(name) this gets the value of the named widget
  • Uses grid layout

  • When adding widgets, up to 4 numerical "positions" can be supplied:

    • column - the coloumn to appear in, starting at 0
    • row - row to appear in, stating at 0
    • columnspan - how many columns to span across
    • rowspan - how many rows to span down
  • Provides loads of extra bits and pieces outside of core tkinter

    • Some of this was from the excellent resources @ http://effbot.org
    • Some of this was from slashdot examples of how to solve common problems
    • Some of this has been incorporated from other people's modules:
      • ToolTip support form Michael Lange
      • png support using James Wright's tkinter-png and Johann C. Rocholl's png.py libraries
      • jpeg support using NanoJPEG from Martin J. Fiedler
  • I've tried to get as much functionality into this library as possible, without requiring any other modules