質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Tkinter

Tkinterは、GUIツールキットである“Tk”をPythonから利用できるようにした標準ライブラリである。

Q&A

解決済

1回答

757閲覧

tkinterで1問1答形式の問題集を作りたいです

patchi

総合スコア12

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Tkinter

Tkinterは、GUIツールキットである“Tk”をPythonから利用できるようにした標準ライブラリである。

0グッド

0クリップ

投稿2022/04/12 16:37

前提

Pythonのtkinterで1問1答の問題集アプリを作っています
問題ラベルと空欄の答えラベルが交互に表示されるようになっています

実現したいこと

キーを押すたびに答えが一つずつ表示される

発生している問題

キーを押すたびにインデックスをプラス1しているのですが
上手くいってないようです

該当のソースコード

Python

1import tkinter as tk 2 3# ウィンドウの作成 4root = tk.Tk() 5root.title('問題集') 6root.geometry('350x300') 7 8#問題と答え 9lessons = ["質問1", "質問2","質問3"] 10answers = ["答え1", "答え2", "答え3"] 11answer_index = 0 12 13 14#エンターを押されると答えを表示する 15def answer_display(event, index): 16 labels_answer[index]["text"] = answers[index] 17 global answer_index 18 answer_index += 1 19 print(answer_index) 20 21 22#問題を表示する 23labels_lesson = [tk.Label(root,text=i) for i in lessons] 24labels_answer = [tk.Label(root,text="") for i in range(len(answers))] 25for i in range (len(lessons)): 26 labels_lesson[i].pack() 27 labels_answer[i].pack() 28 29root.bind("<KeyPress>",lambda event,answer_index= answer_index: answer_display(event, answer_index)) 30 31root.mainloop()

補足情報(FW/ツールのバージョンなど)

Python3.10.2

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

answer_display 内で宣言しているグローバル変数を利用すれば動くと思います。
(より良い方法がありそうですが…)

python

1#エンターを押されると答えを表示する 2def answer_display(event, index): 3 # 引数indexは未使用 4 global answer_index 5 labels_answer[answer_index]["text"] = answers[answer_index] 6 answer_index += 1

投稿2022/04/12 23:15

nemoplus

総合スコア161

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

patchi

2022/04/13 00:24

今の状態で使ってるつもりなのですがより具体的に教えていただいても良いですか?
patchi

2022/04/13 00:28

プログラム読み返したら理解できました
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問