1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63
| #-*- coding: utf-8 -*-
#
#
#
try:
import Tkinter
except:
import tkinter as Tkinter
import termios, sys, os
from time import sleep
class interface(Tkinter.Tk):
def __init__(self):
Tkinter.Tk.__init__(self)
self.geometry("%dx%d+0+0" % (self.winfo_screenwidth(), self.winfo_screenheight()))
self['bg']='black'
self.labaffichage = Tkinter.Label(self, bg='white', width=50)
self.labaffichage.pack()
self.overrideredirect(1)
def setvalue(self, value):
self.labaffichage['text']=value
self.labaffichage.update()
class gestionnaire():
def __init__(self, view):
self.view = view()
self.view.protocol("WM_DELETE_WINDOW", self._intercepte)
self.view.bind('<1>', self._clicevent)
self.flag = True
self.view.update()
while self.flag == True:
lettre = self.getkey()
if lettre.isalpha():
self.view.setvalue(lettre)
elif lettre == '':
self.flag = False
def getkey(self):
TERMIOS = termios
fd = sys.stdin.fileno()
old = termios.tcgetattr(fd)
new = termios.tcgetattr(fd)
new[3] = new[3] & ~TERMIOS.ICANON & ~TERMIOS.ECHO
new[6][TERMIOS.VMIN] = 1
new[6][TERMIOS.VTIME] = 0
termios.tcsetattr(fd, TERMIOS.TCSANOW, new)
c = None
try:
c = os.read(fd, 1)
finally:
termios.tcsetattr(fd, TERMIOS.TCSAFLUSH, old)
return c
def _intercepte(self, event=None):
self.flag = False
self.view.destroy()
def _clicevent(self, event):
self._intercepte()
if __name__ == '__main__':
app = gestionnaire(interface) |
Partager