LoginSignup
0
0

More than 1 year has passed since last update.

子供のための単語起こしアプリケーション

Last updated at Posted at 2022-08-07

1.はじめに

将来子供が出来たとき仕事の傍ら教育にも力を入れていきたいと思っており、教育用アプリケーションの作成を考えています。
そのため簡単な英単語(言語はどれでもいい)をキーボード上のキーで入力することで、単語を出力してより優しく理解していただけたらいいなと思います。

2.手順

(1)keycode(キーコード)を確認する

キーボード上のキーには、それに対応するコードがあります。
このアプリケーションの作成に当たっては、キーコードが非常に重要になります。
(最初はkeycodeではなく、keysymで試しましたが、keycodeのほうがスムーズに作業が行えました。)
例えば、「A」キーは「65」、「C」キーは「67」となる。

下のURLを参考にしました

(2)キーコードに対応するテキストを表示するには

buffer = tkinter.StringVar()
変数 = buffer.set(文字列)

キーコードに対応する文字を出力するには、StringVar()を使用します。
ここで使う英単語は「Good afternoon」,「How are you?」,「Good morning」の三つです。

3.実装

main.py
import tkinter
import pyttsx3

key = 0

engine = pyttsx3.init()
voices = engine.getProperty('voices')
engine.setProperty('voice', voices[1].id)

def key_down(e):
    global key
    key = e.keycode

def main():
    global key
    Xt = label['text']
    engine.say(Xt)
    engine.runAndWait()
    
    if key == 65 :  # 「A」のコードは「65」であるため、「A」のキーを押すとHelloが表示される
        Xt =buffer.set('Good afternoon ')
    if key == 67: # 「c」のコードは「67」であるため、「c」のキーを押すとHow are you?が表示される
        Xt = buffer.set('How are you?')
    if key == 68: # 「D」のコードは「68」であるため、「D」のキーを押すとGood morningが表示される
        Xt = buffer.set('Good morning')
    
    root.after(1000, main)

    
root = tkinter.Tk()
root.geometry('500x500')
root.title('英単語君')
canvas = tkinter.Canvas(root, height = 500, width = 500, bg = 'black')
canvas.pack()
buffer = tkinter.StringVar()
label = tkinter.Label(font = ('Times New Roman', 40), textvariable=buffer, foreground='blue', bg='black')
label.place(x = 90, y = 170)
root.bind('<KeyPress>', key_down)

main()
root.mainloop()

以下のリンクから実装動画が見れます。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0