Skip to content
Simple Tkinter GUIs in Python
Branch: appJar
Clone or download
Type Name Latest commit message Commit time
Failed to load latest commit information.
.github merging May 25, 2019
appJar Updates to toolbar May 19, 2019
docs Updated docs May 25, 2019
examples Merge branch 'next_release' into appJar May 25, 2019
releases New ZIP file May 27, 2019
tests Updated toolbar docs & testing May 19, 2019
.codeclimate.yml ignore examples directory Jan 21, 2017
.coveralls.yml parallel? Jan 6, 2017
.gitignore Introduction of egg file #490 Jul 22, 2018
.landscape.yml landscape update #216 Sep 17, 2017
.travis.yml removed 3.7 testing Jun 30, 2018
LICENSE.txt Updated to Apache License #215 Aug 24, 2017
MANIFEST update dndlib May 28, 2017 updates for new release 0.061 May 28, 2017 updated README Mar 4, 2018
setup.cfg Update to PyPI files Dec 26, 2016 Update May 27, 2019


Simple tKinter GUIs in Python

PyPI Version Build Status Test Coverage Code Health Code Climate irc

Download Here:

Docs here:

This provides a library for implementing easy GUIs...


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


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

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")  


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

You can’t perform that action at this time.