作者: 機械伯爵
日時: 2002/5/21(16:17)
 機械です。

 Tkinterのバインド(キーボードやマウスのイベントとTk部品を結びつける
の習作として、こんなん作ってみました。

 テキストエディタ、ではないです。

 単に、文字が書けるだけ(しかも英文字専用・・・キーイベントを
キャッチしてるだけなので、当たり前ですが・・・)

 ただし、入力を始める前に一度Tabキーを押さないとフォーカスが
キャンバスに移らないので、入力できません(ここらへんは、たしか
フォーカスを移すメソッドがあったはずなんだけど・・・)

 一応、BackSpace(BackDelete)は対応してますが、その他については
未対応。

 Enterによる改行も、Tab入力も、とりあえずなぜか使えてしまう・・・

 ここらへん、ファジーでいいです。 

 あと、Deleteキーを押すと、全画面クリアされます。

--^ vcon0.py
from Tkinter import *
root = Tk()
frame = Frame(root)
canvas = Canvas(frame,width=480,height=360,bg="black")

strings=""

def showText():
  canvas.create_text(50,50,text=strings,
    fill="white",
    anchor=NW,
    font = "Helvetica 15 bold"
  )

def typeScript(event):
  canvas.delete(ALL)
  global strings
  strings = strings + event.char
  showText()

def backSpace(event):
  canvas.delete(ALL)
  global strings
  strings = strings[:-1]
  showText()

def delAll(event):
  canvas.delete(ALL)

canvas.bind("<BackSpace>",backSpace)
canvas.bind("<Delete>",delAll)
canvas.bind("<Key>",typeScript)

canvas.pack()
frame.pack()
root.mainloop()
--$

 Winの方は、ファイルの拡張子を.pyから.pywに変更すると、DOSプロンプト
やコマンドプロンプトが出ないので、うっとーしくなくていいです。

 適当に遊んでください。

※そういえば、バインドについての記述って、結構少ないんだよなぁ。

   機械伯爵