前回は『生年月日を入力して年齢と星座を表示させるプログラム』を作成しました。
生年月日をコマンドプロンプトで入力していましたが、今回はGUIで誕生日を入力して星座を判断するプログラムを作成します。
今回も2回に分けて紹介します。
では始めましょう!
GUIライブラリ「Tkinter」を使う
PYTHONでGUIを作る際は、「Tkinter」というライブラリを使用します。
Tkinterは標準でインストールされているライブラリなので、追加でインストールする必要はありません。
ウインドウを作成する。
では、Tkinterを使用してウインドウを作成するプログラムを作ってみましょう。
import tkinter as tk
root = tk.Tk()
root.title('星座診断')
canvas = tk.Canvas(root, height=300, width=250,bg="#222222")
canvas.pack()
root.mainloop()
1行目:tkinterのインポート
tkinterのライブラリを「tk」としてインポートします。pythonでは、このように関数名を短くして使いやすくすることが多いです。。
2行目:ウインドウの基盤を定義する
ウインドウを作成する為、基盤となる画面「root」を定義します。
3行目:ウインドウのタイトル
ウインドウのタイトルを決めます。今回は「星座診断」です。
4行目:ウインドウのサイズ
ルート内にcanvasを作ります。これがウインドウの大きさになります。
canvas = tk.Canvas(root, height=300, width=250,bg="#222222")
「height(高さ)」, 「width(幅)」, 「bg(背景色)」を設定します。
背景色はHTMLと同じで16進数で記述して下さい。
5,6行目 ウインドウの表示
最後に下記の通り記述して下さい。そうするとウインドウが表示されます。
canvas.pack()
root.mainloop()
ウインドウが作成されました。プログラムを作成している感じがしますね。
文字をウインドウに表示 – Label
次に、プログラムの説明文をウインドウに表示させます。
lbl = tk.Label(text='誕生日を入力して下さい', bg="#FFFFFF")
lbl.place(x=10, y=10)
1行目:Labelの入力
文字を扱う関数としてTkinterのコンストラクタ「Label」を使用します。
「text」は表示する内容、「bg」は背景色になります。
2行目:Lableの場所の設定
説明文の配置を決めます。ウインドウの左上が原点になり横がx軸、縦がy軸になります。
ウインドウ上に文字が表示できました。では、その他の説明文も追加していきます。
lbl = tk.Label(text='月', bg="#FFFFFF")
lbl.place(x=10, y=30)
lbl = tk.Label(text='日', bg="#FFFFFF")
lbl.place(x=10, y=100)
lbl2 = tk.Label(text='貴方の星座は' , bg="#FFFFFF")
lbl2.place(x=10, y=220)
上記のプログラムを実行すると下記のウインドウが表示されます。
星座診断のプログラムが出来上がってきましたね。
入力欄の作成 – Entry
誕生日を入力する為の入力欄を作成します。Tkinterのコンストラクタ「Entry」を使用します。
Entry1= tk.Entry(width=20, bg="#EEEEEE")
Entry1.place(x=10, y=70)
Entry2= tk.Entry(width=20, bg="#EEEEEE")
Entry2.place(x=10, y=130)
「Entry1」には月、「Entry2」には日を入力するようにします。
1行目、3行目:月日の入力ボックスの作成
「bg=”#EEEEEE”」と入力欄の背景をを変更しています。ウインドウの背景色の白色(#FFFFFF)と同じにすると、入力欄が分からないので、色を変更しています。
2行目、4行目:月日の入力ボックスの位置
先ほどのLabelと違う所は、「width=幅」を決めるところです。入力する内容に合わせて幅を決めましょう。
プログラム コード
では、今回のプログラムコードを合わせてみましょう。
import tkinter as tk
root = tk.Tk()
root.title('星座診断')
canvas = tk.Canvas(root, height=300, width=250,bg="#FFFFFF")
canvas.pack()
lbl = tk.Label(text='誕生日を入力して下さい', bg="#FFFFFF")
lbl.place(x=10, y=10)
lbl = tk.Label(text='月', bg="#FFFFFF")
lbl.place(x=10, y=30)
lbl = tk.Label(text='日', bg="#FFFFFF")
lbl.place(x=10, y=100)
lbl2 = tk.Label(text='貴方の星座は' , bg="#FFFFFF")
lbl2.place(x=10, y=220)
Entry1= tk.Entry(width=20, bg="#EEEEEE")
Entry1.place(x=10, y=70)
Entry2= tk.Entry(width=20, bg="#EEEEEE")
Entry2.place(x=10, y=130)
root.mainloop()
まとめ
今回はプログラムの表面の骨組みを作成してみました。
上記のプログラムで、x, y、widthを変えてみたり、色を変えてみたりすると、変化を味わうことが出来るので、よりプログラムが身に付くと思いますので、是非試してください。
次回はこの骨組みに星座を判断するプログラムを加えて完成させます。是非、楽しみにして下さい。
「役に立った!」と思れましたら、下のSNSボタンで記事のシェアをしていただけると嬉しいです!
コメント