質問編集履歴

4

補足を追加しました。

2022/03/06 07:22

投稿

believe
believe

スコア91

test CHANGED
File without changes
test CHANGED
@@ -142,6 +142,8 @@
142
142
  from tkinter import *を試しましたがうまくいきませんでした。
143
143
  tki周りが問題のような気がします。
144
144
 
145
+ python3 -m tkinter
146
+ でtkiが正常にインストールされていることを確認しました。
145
147
 
146
148
  5.使っているツールのバージョンなど補足情報
147
149
  cromebook

3

補足を追加しました。

2022/03/06 06:58

投稿

believe
believe

スコア91

test CHANGED
File without changes
test CHANGED
@@ -137,6 +137,12 @@
137
137
 
138
138
  sudo apt-get -y install python3-tk
139
139
 
140
+ <補足>
141
+ tki.title('英単語を覚えるアプリ')のタイトルが表示されていないので
142
+ from tkinter import *を試しましたがうまくいきませんでした。
143
+ tki周りが問題のような気がします。
144
+
145
+
140
146
  5.使っているツールのバージョンなど補足情報
141
147
  cromebook
142
148
 

2

画像を追加しました。

2022/03/06 04:59

投稿

believe
believe

スコア91

test CHANGED
File without changes
test CHANGED
@@ -3,6 +3,8 @@
3
3
 
4
4
  2.発生している問題・エラーメッセージ
5
5
  問題文が表示されるが選択肢が表示されません。
6
+
7
+ ![イメージ説明](https://ddjkaamml8q8x.cloudfront.net/questions/2022-03-06/350302bf-c20b-4b76-8bac-85fe9b9a042e.png)
6
8
  3.該当のソースコード
7
9
  https://ossanengineer.hatenablog.com/entry/2021/02/07/083354
8
10
 

1

コードを掲載しました。

2022/03/06 04:53

投稿

believe
believe

スコア91

test CHANGED
File without changes
test CHANGED
@@ -6,6 +6,123 @@
6
6
  3.該当のソースコード
7
7
  https://ossanengineer.hatenablog.com/entry/2021/02/07/083354
8
8
 
9
+ excelファイル
10
+ https://www.jamsystem.com/ancdic/index.html
11
+
12
+ ```ここに言語を入力
13
+ import tkinter
14
+ import numpy as np
15
+ import random
16
+ import time
17
+ import xlrd
18
+ import datetime
19
+ import openpyxl as px
20
+ #エクセルを読み込むセクション
21
+ wb = xlrd.open_workbook('./ANC30000_1014_Dic.xls')
22
+ #'Japanise+'のシートをアクティブにする
23
+ sheet = wb.sheet_by_name('Japanese+')
24
+ now = datetime.datetime.now()
25
+ filename = now.year*10000 + now.month*100 + now.day
26
+ filename = str(filename)
27
+ filename += "english_machigai.xlsx"
28
+ #間違いを記録するエクセル
29
+ try:
30
+ wb_e = px.load_workbook(filename)
31
+ except:
32
+ wb_e = px.Workbook()
33
+ ws1 = wb_e['Sheet']
34
+ ws1["A1"].value = "間違えた単語"
35
+ ws1["B1"].value = "間違えた単語の日本語の意味"
36
+ ws1["C1"].value = "間違えた単語の解説"
37
+ r_e = ws1.max_row
38
+ #イベントボタンのセクション
39
+ ##使う変数を定義。出題エクセルの行数、出題に使う乱数(a, t), 問題文(question), 出題数と間違いのカウント(count, error)
40
+ r_max = sheet.nrows
41
+ a = np.random.randint(3, r_max, (1, 4))
42
+ t = np.random.choice(a[0])
43
+ question = sheet.cell(t,0).value
44
+ count = 0
45
+ error = 0
46
+
47
+ #更新ボタン
48
+ #こいつが実行されると、問題文が更新される
49
+ def btn_click():
50
+ global tki
51
+ global a
52
+ global t
53
+ global questios
54
+ a = np.random.randint(3, r_max, (1, 4))
55
+ t = np.random.choice(a[0])
56
+ question = sheet.cell(t,0).value
57
+ random.shuffle(a[0])
58
+ btn_1.configure(text=sheet.cell(a[0][0],3).value,command = btn_click_n1)
59
+ btn_2.configure(text=sheet.cell(a[0][1],3).value,command = btn_click_n2)
60
+ btn_3.configure(text=sheet.cell(a[0][2],3).value,command = btn_click_n3)
61
+ btn_4.configure(text=sheet.cell(a[0][3],3).value,command = btn_click_n4)
62
+ lbl_q.config(text = "問題: "+str(question)+"の意味はどれでしょう?")
63
+
64
+ #ボタンの入力に応じて正解かどうかを判断したいが、なぜか起動するとすでに実行されている<=引数が入っているとダメ見たいですね。。なんでやろ
65
+ def ans(num):
66
+ global tki
67
+ global a
68
+ global t
69
+ global r_e
70
+ global error
71
+ global count
72
+ count += 1
73
+ if a[0][num] == t:
74
+ print ("正解です")
75
+ else:
76
+ r_e += 1
77
+ error += 1
78
+ print ("不正解です")
79
+ print ("正解は",sheet.cell(t,3).value,"です\n間違えたのでエクセルに書き込みました")
80
+ ws1["A"+str(r_e)].value = sheet.cell(t,0).value
81
+ ws1["B"+str(r_e)].value = sheet.cell(t,3).value
82
+ ws1["C"+str(r_e)].value = sheet.cell(t,4).value
83
+ wb_e.save(filename)
84
+ btn_click()
85
+
86
+ #ボタン1~4がクリックされたときに実行される関数
87
+ def btn_click_n1():
88
+ ans(0)
89
+ def btn_click_n2():
90
+ ans(1)
91
+ def btn_click_n3():
92
+ ans(2)
93
+ def btn_click_n4():
94
+ ans(3)
95
+
96
+ count = 0
97
+ error = 0
98
+ tki = tkinter.Tk()
99
+ tki.geometry('300x300')
100
+ tki.title('英単語を覚えるアプリ')
101
+
102
+ # ラベル(出題問題の)
103
+ lbl_q = tkinter.Label(text ="問題: "+question+"の意味はどれでしょう?")
104
+ lbl_q.place (x=80, y =50)
105
+ # テキストボックス
106
+
107
+ btn_1 = tkinter.Button(tki,text=sheet.cell(a[0][0],3).value,command=btn_click_n1)
108
+ btn_1.place(x=90, y=100)
109
+ #btn_1.pack()
110
+ btn_2 = tkinter.Button(tki,text=sheet.cell(a[0][1],3).value,command=btn_click_n2)
111
+ btn_2.place(x=180, y=100)
112
+ #btn_2.pack()
113
+ btn_3 = tkinter.Button(tki,text=sheet.cell(a[0][2],3).value,command=btn_click_n3)
114
+ btn_3.place(x=90, y=150)
115
+ #btn_3.pack()
116
+ btn_4 = tkinter.Button(tki,text=sheet.cell(a[0][3],3).value,command=btn_click_n4)
117
+ btn_4.place(x=180, y=150)
118
+ #btn_4.pack()
119
+ # 更新ボタン
120
+
121
+
122
+ # 画面をそのまま表示
123
+ tki.mainloop()
124
+ print (count,"回のクイズに挑戦して正解率は",error,"/",count,"でした")
125
+ ```
9
126
  4.自分で調べたことや試したこと
10
127
  ライブラリのインストールをしました。
11
128
  sudo pip3 install xlrd