Skip to main content

A simple line UI (like that of a calculator) for Python learners to build simple yet interesting event driven apps.

Project description

line-ui

This is a small Python package to provide an API to a one-line user interface (like that in a calculator) for Python learners.

a sample line UI app

It provides the following features:

  • output in the line (left, right or middle aligned).
  • output in the console (the lower box), mainly for debugging.
  • keyboard input.
  • timer input (every second or every 0.05 seconds).
  • schedule a call to a function a certain seconds later.
  • make a beep.

With these a Python learner can make apps like: digital clock, the classic digit invaders game, slapjack, etc.

How to use

Here is a sample program using line UI that displays a counter, which is incremented every second or when the user presses the up arrow key.

from line_ui import *

n = 0

# called when the UI is ready for you. You can display the
# initial stuff here.
def on_ready():
    draw_r(str(n))  # draw a right-aligned string in the line

# called every frame (0.05 seconds). As it is empty, you may
# as well just delete this function.
def on_update():
    pass

# called every second
def on_second():
    global n
    n = n+1
    draw_r(str(n)) 
    # you can use print to print to the lower box
    print("got abcde "+str(n))
    beep() # make a beep

# called when the user presses a key
def on_key():
    global n
    # you can get the key as a str, e.g., you get "a" if A key was pressed.
    k = get_key()
    if k == "KEY_UP":
        n = n+1
        draw_r(str(n))
    elif k==" ":
        draw_l("X") # draw a left-aligned string
        schedule(1, hide_x)# hide X in one second
    elif k == "q":
        stop()  # use this to tell the app to quit

def hide_x():
    draw_l(" ")

start()  # must do this to kick start the app with the UI

Project details


Download files

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

Source Distribution

lineui-0.1.2.tar.gz (15.9 kB view hashes)

Uploaded Source

Built Distribution

lineui-0.1.2-py3-none-any.whl (15.9 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page