こんにちは!Pythonに手を出してみたS.K.です。
新しい言語を勉強するときは、テキストなどで基本を押さえたうえで、
自分だけのオリジナルアプリを作ると効率がいいですよね。
今回、Pythonの勉強を始めて初のオリジナルPythonアプリを作ってみました!!
その名も「おえかきモドキ」です。
…まあ、ご期待いただいた通りのしょぼい機能しかないのですが、こんなのでも自分で考えて作ると、とてもに勉強になりました。
ちなみにこのプログラムは、ここしばらく忙しくて記事がかけていなかったものの、プログラミングの勉強をボチボチやっていた中で作りためたプログラムの一つだったりします。
たしかPythonを勉強しだして1週間くらいで作ったやつだったはず(たぶん)。
なので粗いのはしょうがない!!(自己弁護)
冗談はさておき、紹介していきます。
これが「おえかきモドキ」だ!!
何はともあれ、どんなのなの?と思われるせっかちなあなたに、プログラムを動かしている動画です。
操作はとっても簡単、マウスの左クリックで赤丸を表示、右クリックで青丸を表示、ホイール押し込みで削除です。(表示される丸の大きさも固定、線なんて引けません。)
え?それだけ?
それだけです!!
GUIで画面を表示して、そこにマウスクリックのイベントを設定しているだけではあるのですが、参考にしたテキストを見ながら、ネットを見ながらで作りました。
たったこれだけではありますが、これだけでも正直に言えばかなり悩みました。当たり前ですよね。
だって、やったことないんですもん。
でも悩んでやることで、知らないことを知ろうとすることで、少しずつできてくる感じが成長ですよね。テキストをやることでも成長しますが、書いてあることだけでなく、そこから一歩進むことが大事だと思っています。それを人に見せてレビューをもらうのもおすすめですよ。
マウスクリックイベントの設定はどうするの??
今回GUIを扱うためにtkinterモジュールを使っています。
また、ソースコードはこのようにしています。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
import tkinter #tkinterモジュールをインポート def click(e): if e.num==1: #クリックされた場所に描画する canvas.create_oval(e.x-20, e.y-20, e.x+20, e.y+20, fill="red", width=0) elif e.num==3: canvas.create_oval(e.x-20, e.y-20, e.x+20, e.y+20, fill="blue", width=0) else: canvas.create_rectangle(0, 0, 600, 400, fill="white", width=0) #ウインドウをつくる root = tkinter.Tk() #ウインドウオブジェクトを作る root.title("おえかき") #タイトルを指定 root.geometry("600x400") #ウインドウのサイズを指定 #Canvasをつくる canvas = tkinter.Canvas(root, width=600, height=400, bg="white") #キャンバスの部品を作る canvas.place(x=0, y=0) #ウインドウにキャンバスを配置 #イベントを設定する root.bind("<ButtonPress>", click) #bind()命令でマウスをクリックした時に実行する関数を指定 root.mainloop() #ウインドウを表示 |
マウスをクリックしたときのイベントはbind()命令を使って受け取っています。
<ButtonPress>はマウスすべてのボタンに反応するため、マウスをクリックしたら、click関数が実行されます。
- 左クリックをしたときは e.numが1
- 右クリックをしたときは e.numが3
- ホイールを押し込んだときは e.numが2
になります。
クリックするボタンによってe.numの値が変わるため、処理を分岐しています。
まとめ
さて、ソースコードを見てもらえればわかるようにすごく短いです。
短く簡単ではあるんですが、GUI表示とクリックイベントの処理が入ったプログラムになっています。
プログラムを作った後、テストをしているときに子供が近づいてきて、目を輝かせながら僕もやってみたい!!言ってきました。
なんでも保育園でやっているシール貼り的なものに感じたようです。遊んでいる間も自由な発想で絵を書いていましたよ(笑)
マウスを触るのも初めてだったので動かすときもボタンを押すときも恐る恐るしていましたが、慣れるとひょいひょい動かしていました。
Pythonの勉強のつもりで作りましたが、子供のマウス操作の練習にも使えますよ!!