pythonを使って電卓を作る

python プログラミング

pythonを使って何かを作る練習をしてます。備忘録としてちょっとずつ作っていきます。
何か目標を持ってみないと取り掛かれないので、CoCのキャラシを作るときにダイスを振ってパラメーターを決める専用電卓を作れるようにしてみました。版権の問題があるといけないので、ここにはSTRのみ計算するものをアップします。

アプリを起動したらウィンドウが立ち上がって、入力⇒計算という簡単なものを予定しています。

参考にさせていただいたサイト様はリンクで接続させていただいています。
編集中にもっと簡潔にまとめられているサイト様みつけて膝から崩れ落ちてます。

基本構文

import tkinter
from tkinter import messagebox

#計算式の部分
#STR
def Caliculation_STR():
    STR01 = int(STR1.get())
    STR02 = int(STR2.get())
    STR03 = int(STR3.get())

    answer_STR = (STR01+STR02+STR03)
    answer_STR_ent.delete(0, tkinter.END)
    answer_STR_ent.insert(0, answer_STR)

#画面作成
tki = tkinter.Tk()
#画面サイズの設定
tki.geometry('550x400')
#画面タイトルの設定
tki.title('COC用電卓')

#テキストボックス 
#STRの値を入力する宣言
label=tkinter.Label(text='STR:Strength,筋力=3D6・・・6面ダイスを3回振ってください')
label.place(x=25,y=10)

STR1 = tkinter.Entry(master=tki, width=10)
STR1.place(x=100,y=30)
label=tkinter.Label(text='STR1')
label.place(x=25,y=30)

STR2 = tkinter.Entry(master=tki, width=10)
STR2.place(x=100,y=50)
label=tkinter.Label(text='STR2')
label.place(x=25,y=50)

STR3 = tkinter.Entry(master=tki, width=10)
STR3.place(x=100,y=70)
label=tkinter.Label(text='STR3')
label.place(x=25,y=70)

#ボタンの作成
#STR
answer_STR_btn = tkinter.Button(master=tki,text='計算→',command=Caliculation_STR)
answer_STR_btn.place(x=220, y=50)

#計算結果表示部分
#STR
answer_STR_ent= tkinter.Entry(master=tki, width=10)
answer_STR_ent.place(x=370,y=50)
label=tkinter.Label(text='STR,筋力=')
label.place(x=280,y=50)

#画面をそのまま表示 最後に必ず入れる事
tki.mainloop()

実行すると以下のような画面ができました。

表示画面

解説

Tkinter

TkinterPython からGUIを構築・操作するための標準ライブラリ(ウィジェット・ツールキット)である。(wiki)

次のような構成でスタートします
これはWindwを立ち上げてUIを作っていくベースになります。

import tkinterfrom・・・thinterを使いますの宣言
tkinter import messagebox・・・新規ウィンドウのを取り込み

#画面作成・・#でコメントアウト
tki = tkinter.Tk()・・・画面作ります宣言

#画面サイズの設定
tki.geometry(‘550×400’)・・・x=500pixel、y=400pixelで画面を作ります宣言

#画面タイトルの設定
tki.title(‘COC用電卓’)・・・ウィンドウの名前をCOC用電卓にします宣言

label=tkinter.Label(text=’STR:Strength,筋力=3D6・・・6面ダイスを3回振ってください’)
・・・ラベルテキストの追加
label.place(x=25,y=10)
・・・ラベルテキストの位置

STR1 = tkinter.Entry(master=tki, width=10)・・・tkinterを使ってテキストボックスを作る 幅10
STR1.place(x=100,y=30)・・・テキストボックスの位置
label=tkinter.Label(text=’STR1′)・・・ラベルテキストの追加
label.place(x=25,y=30)・・・ラベルテキストの位置

#ボタンの作成
#STR
answer_STR_btn = tkinter.Button(master=tki,text=’計算→’,command=Caliculation_STR)
・・・tkinter.Buttonの作成(tkiを使う、テキスト内容、クリックで発生するイベント)
answer_STR_btn.place(x=220, y=50)
・・・ボタンの位置

#計算結果表示部分
#STR
answer_STR_ent= tkinter.Entry(master=tki, width=10)
・・・計算結果表示用のテキストボックスを作成
answer_STR_ent.place(x=370,y=50)

label=tkinter.Label(text=’STR,筋力=’)
label.place(x=280,y=50)

tki.mainloop()・・・thinterをループして表示し続けます

dif

defはdefinition(=定義という意味) 独自関数を作成します
引用:
HEADBOOST https://www.headboost.jp/python-def-syntax/#2_def

def Caliculation_STR():・・・dif 関数名():の構成()内に引数を入れる
    STR01 = int(STR1.get())・・・int()整数で取り込みます
              ・・・引数=辞書型.getメソッドで入力ボックスからデータを取得
    STR02 = int(STR2.get())
    STR03 = int(STR3.get())

    answer_STR = (STR01+STR02+STR03)・・・単純な足し算 演算は+-*/でできる
    answer_STR_ent.delete(0, tkinter.END)・・・テキストボックスのクリア
    answer_STR_ent.insert(0, answer_STR)・・・テキストボックスに計算値”answer_STR”を出力
                     ・・・deleteとinsertについてtkinterについて


解説にもなっていない感じですが、項目を増やすことで多機能な電卓が作れそうです。
もう少し簡単な表現方法があるかもですが、とりあえず動いているのでこれで。。。

広告

コメント

タイトルとURLをコピーしました