前回は『生年月日を入力して年齢と星座を表示させるプログラム』を作成しました。

生年月日をコマンドプロンプトで入力していましたが、今回はGUIで誕生日を入力して星座を判断するプログラムを作成します。

では始めましょう!
GUIライブラリ「Tkinter」を使う
PYTHONでGUIを作る際は、「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のライブラリをtkとしてimportします。tkとした方が短くていいからですね。
4行目:ウインドウを作成する為、大元となる画面rootを定義します。おまじないだと思って下さい。次にウインドウのタイトルを決めます。今回は「星座診断」です。
ルート内にcanvasを作ります。これがウインドウの大きさになります。大きさを変更したい場合は、height, widthの数値を変えて下さい。また背景色も変更することができます。背景色はHTMLと同じで16進数で記述して下さい。
最後にroot.mainloop()で締めて下さい。これもおまじないだと思って下さい。
ウインドウが作成されました。プログラムを作成している感じがしますね。
文字をウインドウに表示 – Label
プログラムの説明文をウインドウに表示させます。文字の関数としてTkinter内に用意されているLabelを使用します。
lbl = tk.Label(text='誕生日を入力して下さい', bg="#FFFFFF") lbl.place(x=10, y=10)
1行目:説明文を入力します。bgはLabelの背景色(background color)です。bgは無くても大丈夫です。
2行目:説明文の配置を決めます。ウインドウの左上が原点になり横が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を変えてみたり、色を変えてみたりと色々自分好みに変えていくとプログラムが身に付くと思います。
次回はボタンの作成と計算等のプログラムの中身を作成していきます。
コメント