前提・実現したいこと
プログラミングのドドドド初心者です。
anacondaからpythonを使っており、計算問題を提示し回答させるGUIを作成したいと思っています。
【具体的内容】
スタートページでスタートボタンを押すところから始まり、3つの画面を遷移させていく。
①スタート画面。スタートボタンを押すと[画面1]へ。
②[画面1] 計算式表示。2秒後自動的に[画面2]へ遷移。
③[画面2] 画面中心にただ=を表示する画面。1.5秒後に自動的に[画面3]へ遷移。
④[画面3] 数字を表示。被験者に表示された数字が計算式の答えとして正しいかを判断させ、キーボードのT(true)か、F(false)で回答させる。
⑤[画面3]において、被験者の回答の有無や、正誤に関わらず、2秒後に自動的に[画面1]へ遷移(②に戻る・新たな計算式表示)。
⑥ ②から⑤の流れを繰り返し、10分間経過したところで試験を終了させる。
被験者の回答内容をどのように記録していくかはまだ目処が立っていません。
発生している問題
経過時間を測ってやってみたが、画面が遷移しなかったりします。 現状tinterを使用して書いていますが、こだわりはありません。 pythonで作成できればいいと思っています。
該当のソースコード
ボタンを押すことによる遷移まではできました。
現状の形を全く別の方向に変えていっても構いません。
python
1import tkinter as tk 2from tkinter import font 3import time 4 5class SampleApp(tk.Tk): 6 def __init__(self): 7 tk.Tk.__init__(self) 8 self._frame = None 9 self.switch_frame(StartPage) 10 11 def switch_frame(self, frame_class): 12 new_frame = frame_class(self) 13 if self._frame is not None: 14 self._frame.destroy() 15 self._frame = new_frame 16 self._frame.pack() 17 18class StartPage(tk.Frame): 19 def __init__(self, master): 20 tk.Frame.__init__(self, master) 21 tk.Label(self, text="startボタンを押して\n開始してください", font=("Helvetica", 60)).pack(side="top") 22 tk.Button(self, text="start", command=lambda: master.switch_frame(FormulaPage)).pack() 23 24class FormulaPage(tk.Frame): 25 def __init__(self, master): 26 tk.Frame.__init__(self, master) 27 tk.Label(self, text="暗算してください\n53+39", font=("Helvetica", 60)).pack(side="top") 28 29 start = time.time() 30 count = 0 31 while count < 2: 32 progress = time.time() 33 count = progress - start 34 35 # master.switch_frame(StartPage).pack() 36 37 tk.Button(self, text="go back to start page", command=lambda: master.switch_frame(StartPage)).pack() 38 39 40 41if __name__ =="__main__": 42 app = SampleApp() 43 app.mainloop() 44
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/06/17 09:32