Skip to content

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

License

Notifications You must be signed in to change notification settings

freemant2000/line-ui

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

44 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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

About

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

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages