マウスのof/offで別々の処理をさせる

先に和歌の読み出しプログラムを作りましたが、歌人も一緒に表示されるので少し頭の体操用として、マウスを離したら表示されるような関数を作りました。

もう一つコマンドボタンを付ければ出来るのですが、この方法の方が簡単なのでこれにします。 ただ自分が知らなかってだけでしたね。

今までボタン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  
25count, 和歌群 = read_和歌群()
26和歌_和歌群 = 和歌群[0]
27歌人_和歌群 = 和歌群[1]

 

これでマウスonで和歌が、offで歌人が表示されます。 ちょっとしたQ&Aソフトになりました。

 

終わり

 

Python別館
ブラックジャックを作るー4

初心者の僕には難しいですが、ラスベガスで負け続けたカードゲームの「Black Jack」を作ってみま …

Python別館
Python別館 目次

・Pythonで作成したアプリ関連の記事は「Python別館」に、・widgetやその使用方法・それ …

Python別館
脳トレの勧め 2/2

前回は、辞書に三つの要素を入れる術が分からなかったので、策を弄して取敢えずは動くように出来ました。で …