見出し画像

Python始めました。 tkinter編5

こんにちは、週の半分以上テレワークのせいで分かりやすく視力が低下していっていますdomoです。労災認定してほしいです。

さて、前回はエントリーボックスを取り上げましたが、今回はボタンについて書きます。実はこの2つはセットのようなところがあり、エントリーボックスだけでは機能しません。ボタンがあって初めてアクションを指定出来るので、エントリーボックスに記入された内容を取得して次の行動に移すことが出来ます。
ちなみに前回の内容はこちら。

基本的な使い方

初回おさらいですが、基本的な使い方は以下のような感じです。
btnの部分は任意で指定します。

btn=tk.Button(text"***")
#ここにいろいろ足していく
btn.pack()

簡単な計算をさせてみる
前回エントリーボックスを3つ作る方法を取り上げたので、せっかくなのでそれを使ってボタンを押すと、合計を表示するプログラムを書いてみます。

関数の使い方

ボタンを押したときに実行するアクションをまとめるのに関数を使っていきます。関数はプログラムの本文とは別の所に定義し、本文中では実行するだけです。とてもざっくり使い方を書くと、こんな感じです。

def 関数名():
  処理​

エントリーボックスの取得

前回書きたくて書けなかったのがエントリーボックスの取得です。これによってユーザーが入力した値を読み取ってそれをどこかに出力したり、計算に使ったりすることが出来ます。

使い方はとても簡単。Eboxの所は自分で定義したエントリーボックスの名前に置き換えてください。

○○=Ebox.get()

書いてみる

今回は前回の入力内容に加え、合計を計算するための関数と、計算用のボタンと出力用のエントリーボックスを配置します。
エントリーボックスへの文字列の挿入の仕方は以下です。
tk.ENDで文書の最後の文字の次の位置からの入力を指定します。文字列の場合は△△△を"ダブルクオート"で囲みます。

○○.insert(tk.END,△△△)

では書きます。

import tkinter as tk

def sum():    #合計計算用の関数
   value1=Ebox1.get()    #1つのエントリボックスの値をvalue1に入れる
   value2=Ebox2.get()    #上記同様
   value3=Ebox3.get()    #上記同様
   total = int(value1) + int(value2) + int(value3)    #数字として足します
   Ebox4.insert(tk.END,total)    #4つめのエントリーボックスに合計値を表示

root = tk.Tk()

lbl1=tk.Label(text="1")
Ebox1=tk.Entry(width=15)

lbl2=tk.Label(text="2")
Ebox2=tk.Entry(width=15)

lbl3=tk.Label(text="3")
Ebox3=tk.Entry(width=15)

btn=tk.Button(text="合計", command=sum)    #commandで関数呼び出し

lbl4=tk.Label(text="合計")
Ebox4=tk.Entry(width=15)

lbl1.grid(row=0,column=0)
Ebox1.grid(row=0,column=1)
lbl2.grid(row=1,column=0)
Ebox2.grid(row=1,column=1)
lbl3.grid(row=2,column=0)
Ebox3.grid(row=2,column=1)
btn.grid(row=3,column=0,columnspan=2)
lbl4.grid(row=4,column=0)
Ebox4.grid(row=4,column=1)

root.mainloop()

突如長くなってすいません・・・
これを実行すると以下のウィンドウが現れます。

画像1

適当に数字を入れて合計ボタンを押します。

出来ました。

画像2


読んでいただきありがとうございます。
今回はエントリーボックスの値の取得とボタンの使い方について触れました。
次回はこの辺の機能を使った応用をやってみようかと思います。それではまた。

#プログラミング
#プログラミング初心者
#python
#プログラミング学習
#fire
#目指せデータサイエンティスト

いいなと思ったら応援しよう!