質問編集履歴
4
補足を追加しました。
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
補足を追加しました。
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
画像を追加しました。
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
コードを掲載しました。
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
|