ココでははPythonを利用しながらtkinterの使い方について解説します。
入門編としておみくじアプリを作ってみましょう。
もしtkinterのインストール方法であったり
簡単なボタンの作成やウィンドウの作成方法がわからない
という方はこちらの記事を先にご覧ください。
⇒tkinterをインストールする方法
⇒tkinterでボタンを作成し配置してみよう
【Python】tkinterの使い方入門:ダイアログを表示させよう
前回までの記事でウィンドウを作って表示させたり
ラベルやボタンを作って表示させたりする方法について学んできました。
⇒tkinterをインストールする方法
⇒tkinterでボタンを作成し配置してみよう
まず
import tkinter as tk
を実行して、tkinterをインポートし、そのうえで
#例題1 a = tk.Tk() a.title("ここでウィンドウの名称を記載します。") a.geometry("500x250") b = tk.Label(text="こちらのボタンをマウスでクリック") b.pack() def botan(): print('これがボタンです。') bota = tk.Button( text ='どう?', width =40, height = 10, command = botan ) bota.pack() a.mainloop()
と記述することで、ウィンドウやボタンが表示されます。
ボタンを押すと
「これがボタンです」
と表示されます。
以下の画像が例題1実行後のものです。
次にダイアログを表示させるために
import tkinter.messagebox as mb
と記述して実行しておきましょう。
これでtkinterのmessageboxがインポートされました。
messageboxを活用することで
いろんなダイアログが表示できるようになります。
では例題2を一緒にやっていきましょう。
#例題2 a = tk.Tk() a.title("ここでおみくじができますよ。下記のボタンをクリックです。") a.geometry("500x250") b = tk.Label(text="マウスでクリック") b.pack() def botan(): mb.showinfo("おみくじ結果", "中吉です。") bota = tk.Button( text ='おみくじを引く', width =40, height = 10, command = botan ) bota.pack() a.mainloop()
実行すると
上記画像のようなウィンドウが表示されます。
まず
a = tk.Tk()
ですが、変数aにウィンドウのオブジェクトを代入するという意味です。
次に
a.title("ここでおみくじができますよ。下記のボタンをクリックです。") a.geometry("500x250")
ですが、上記画像を見ていただくと
『ここでおみくじができます。下記のボタンをクリックです。』というところに
文字が表示されるようにしています。
それからgeometry(“500×250”)はウィンドウの大きさを
指定しています。
それから
b = tk.Label(text="マウスでクリック") b.pack()
ですが、『マウスでクリック』と表示される文字列を記述していて
packでウィンドウと並んで表示されるようになります。
それではウィンドウのボタンをクリックしてみましょう。
『中吉です。』というダイアログが表示されました。
これは
mb.showinfo("おみくじ結果", "中吉です。")
の記述で実現できています。
OKボタンをクリックするとダイアログは閉じますので安心してください。
【Python】tkinterの使い方入門:乱数を使っておみくじアプリを完成させる
では乱数を使っておみくじアプリを完成させていきましょう。
まず、
import random
と記述して実行してください。
これで乱数が使えるようになりました。
その上で例題3
#例題3 kekka = [ ["大吉", "今日、1万円もらえるでしょう。"], ["吉", "上司から褒められるでしょう。"], ["中吉", "家族に褒めてもらえるでしょう。"], ["小吉", "100円もらえるでしょう。"], ["末吉", "天津飯を食べれるでしょう。"], ["凶", "めんどくさいオバサンに絡まれるでしょう。"], ["大凶", "スキンヘッドの男に殴られるでしょう。"] ] a = tk.Tk() a.title("ここでおみくじができますよ。下記のボタンをクリックです。") a.geometry("500x250") b = tk.Label(text="マウスでクリック") b.pack() def botan(): c = random.randrange(len(kekka)) r = kekka mb.showinfo(r[0], r[1]) bota = tk.Button( text ='おみくじを引く', width =40, height = 10, command = botan ) bota.pack() a.mainloop()
例題3を実行すると
例題2と同じウィンドウが表示されます。
ボタンをクリックすると、
吉が出ました。
もう一度、ボタンをクリックしてみましょう。
今度は・・・
凶が出てしまいました・・・。
こんな感じで、乱数を使うことで
ランダムなおみくじの結果を得ることができます。
例題3では例題2の記述に
kekka = [ ["大吉", "今日、1万円もらえるでしょう。"], ["吉", "上司から褒められるでしょう。"], ["中吉", "家族に褒めてもらえるでしょう。"], ["小吉", "100円もらえるでしょう。"], ["末吉", "天津飯を食べれるでしょう。"], ["凶", "めんどくさいオバサンに絡まれるでしょう。"], ["大凶", "スキンヘッドの男に殴られるでしょう。"] ]
と
c = random.randrange(len(kekka)) r = kekka mb.showinfo(r[0], r[1])
の記述を加えただけです。
まず、
kekka = [ ["大吉", "今日、1万円もらえるでしょう。"], ["吉", "上司から褒められるでしょう。"], ["中吉", "家族に褒めてもらえるでしょう。"], ["小吉", "100円もらえるでしょう。"], ["末吉", "天津飯を食べれるでしょう。"], ["凶", "めんどくさいオバサンに絡まれるでしょう。"], ["大凶", "スキンヘッドの男に殴られるでしょう。"] ]
によって、ボタンを押した後に得られる結果を複数用意し
kekkaという変数に代入しています。
変数の代入についてはこちらの記事で詳しく解説しています。
⇒【Python入門】変数の代入についてわかりやすく解説
それから
c = random.randrange(len(kekka))
先ほど、おみくじの結果の情報が入っているkekkaに対して
len()を使うことで、長さを調べています。
len()についてはこちらの記事で詳しく解説しています。
⇒【Python】文字列を削除・長さを調べる・数値を文字列に変換する方法
で、lenで長さを取得し、
random.randrangeによって、lenで調べた長さの範囲における乱数を
整数で取得し、変数cに代入します。
それからここで
r = kekka
得られた結果を変数rに代入します。
次に
mb.showinfo(r[0], r[1])
変数rに入っている結果内容が
r[0], r[1]によって、タイトルと本文に表示されるようになります。
あとは例題2と同じなので解説は割愛します。
こんな感じで乱数を利用することで
おみくじアプリを作ることができました。
やり方によっては英単語と日本語訳を組み合わせて
単語帳アプリを作ることもできますね。
以上で解説を終わります。
pythonを学ぶならこちらの動画講座がおすすめです
Python 3 入門 + 応用 +アメリカのシリコンバレー流コードスタイルを学び、実践的なアプリ開発の準備をする
かなり長い講座名ですね。
わかりにくそうな感じがします。ですが、pythonの基礎からしっかりとわかりやすく教えてくれます。
また、きれいなコードを書くための方法についても
教えてくれるので、周りが「どうやってそんなコードを書いてるの?」
とびっくりされるようになるかもしれません。それからWebアプリケーション開発の基本的なテクニックについても
教えてくれます。なので、pythonを使ってwebアプリケーションを作ってみようと
思っている方にもおすすめです。値段は時期によって違います。
詳しくはこちらをご覧ください。
みんなのAI講座 ゼロからPythonで学ぶ人工知能と機械学習
この講座ではまずpythonの基礎を学びます。
次に人工知能について学んでいきます。そして最終的にはpythonを使って文字認識や株価分析ができるような技術力が身につくようになっています。
単純に教科書的なpythonを学ぶのではなく
仕事でも使えるスキルを身につけたい方におすすめの講座です。なのに値段は恐ろしいほど安いです。
時期によって値段は変動するので
詳しくはこちらをご覧ください。
Pythonで機械学習:scikit-learnで学ぶ識別入門
この動画講座は広島大学准教授の先生が担当しています。
機械学習が専門の先生です。すごく深い知識が身につきます。
大学の先生の講義って難しそうってイメージがあるかもしれません。でもそんなことはありません。
すごくわかりやすいです。pythonで機械学習のスキルを身につけたい方におすすめです。
値段は時期によって違いますが、かなり、良心的な価格になっています。詳しくはこちらをご覧ください。