先に和歌の読み出しプログラムを作りましたが、歌人も一緒に表示されるので少し頭の体操用として、マウスを離したら表示されるような関数を作りました。
もう一つコマンドボタンを付ければ出来るのですが、この方法の方が簡単なのでこれにします。 ただ自分が知らなかってだけでしたね。
今までボタン1のクリックで、和歌と歌人を表示させていました(btn1.bind(“<Button>”, 和歌_Show))。
それをボタン1を離したときに発生するeventで歌人を表示させることにしました(btn1.bind(“<ButtonRelease>”, 歌人_Show))。
変更部分のみ載せます。 他は変更なしです。
1 | def show_データ(count,num, 和歌_和歌群, 歌人_和歌群): # 乱数に応じた要素を表示する関数 | |
2 | 和歌 = 和歌_和歌群[num] # データを和歌に格納 | |
3 | 歌人 = 歌人_和歌群[num] | |
4 | ||
5 | #ボタン1(開始/次)の関数 | |
6 | def 和歌_Show(event): | |
7 | global 乱数 | |
8 | 乱数 = random.randrange(0, count) | |
9 | 和歌 = 和歌_和歌群[乱数] # 和歌に格納 | |
10 | ||
11 | txt1.delete(0, tk.END) | |
12 | txt2.delete(0, tk.END) | |
13 | ||
14 | txt1.insert(0, f’ {和歌}’) #txt1.insert(tk.END, 和歌)でもOK | |
15 | ||
16 | def 歌人_Show(event): | |
17 | 歌人 = 歌人_和歌群[乱数] | |
18 | ||
19 | txt2.delete(0, tk.END) | |
20 | txt2.insert(0, f’ {歌人}’) | |
21 | ||
22 | btn1.bind(“<Button>”, 和歌_Show) #マウスの左ボタンonでdef 和歌_Show(event):が処理される | |
23 | btn1.bind(“<ButtonRelease>”, 歌人_Show)#マウスの左ボタンoffでdef 歌人_Show(event):が処理される | |
24 | ||
25 | count, 和歌群 = read_和歌群() | |
26 | 和歌_和歌群 = 和歌群[0] | |
27 | 歌人_和歌群 = 和歌群[1] |
これでマウスonで和歌が、offで歌人が表示されます。 ちょっとしたQ&Aソフトになりました。
終わり