前提・実現したいこと
Python初心者です。2択クイズゲームを作ろうと思っています。マウス操作に慣れていない方でも使えるようにキーボードからの入力で回答させたいので、とりあえずキーを判定する部分を作ってみました。aキーかbキーが押されたことを確認するためにprint(key)でkeyの値を取り出そうとしているのですがうまくいきません。
最終的にprint(key)でkeyの値を取り出したいのですがどうすればよいですか。
発生している問題・エラーメッセージ
def keyA(event):でaキーを押されたときkey="A"を代入するようにしておき、frame.bind("a",keyA)でaキーが押された時にkeyAを呼び出して、それをprint(key)で取り出したいが取り出し方がわからない。
該当のソースコード
Python3.6
-- coding: utf8 --
import tkinter as tk
import winsound
root = tk.Tk()
frame = tk.Canvas(root, width=800, height=600)
pimg = tk.PhotoImage(file="wall.png")
frame.place(x=0, y=0)
frame.create_image(400, 300, image=pimg)
imgA = tk.PhotoImage(file = 'pressed_A.png')
imgB = tk.PhotoImage(file = 'Pressed_B.png')
def keyA(event):
<indent> global key
<indent> key="A"
<indent> frame.place(x=0, y=0)
<indent> frame.create_image(320, 220, image=imgA, tag="illust")
<indent> root.update()
<indent> winsound.PlaySound("pressed_A.wav", winsound.SND_FILENAME)
def keyB(event):
<indent> global key
<indent> key="B"
<indent> frame.place(x=0, y=0)
<indent> frame.create_image(320, 220, image=imgB, tag="illust")
<indent> root.update()
<indent> winsound.PlaySound("pressed_B.wav", winsound.SND_FILENAME)
frame.bind("a", keyA)
frame.focus_set()
frame.pack()
frame.bind("b", keyB)
frame.focus_set()
frame.pack()
print(key)
root.mainloop()
試したこと
keyイベント内でprint(key)を表示させることはできるが、メインの実行時にキーを判定できない。タイマーイベントで対応するときはどうすればよいでしょうか。
または、キー判定のためにまったく別の良い方法があれば教えてください。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。

回答2件
あなたの回答
tips
プレビュー