Python
 Computer >> コンピューター >  >> プログラミング >> Python

TkinterでEntry.get()の値を整数に変換する方法

TkinterのEntryウィジェットは、テキストフィールドに1行分の入力を受け付けるためによく使われる部品です。Entryウィジェットに入力された値は、.get()メソッドを使って取得できます。

ただし、.get()メソッドが返す値は必ず文字列型(str)である点に注意が必要です。たとえば、ユーザーがEntryウィジェットに整数を入力した場合でも、その値は文字列として取得されます。そのため、入力値を整数として扱いたい場合は、int()関数を使って文字列から整数への型変換(キャスト)を行う必要があります。

サンプルコード

以下の例では、ユーザーが入力した2つの整数を受け取り、その合計を計算して表示する方法を紹介します。

# 必要なライブラリをインポート
from tkinter import *

# tkinterのフレーム(ウィンドウ)を作成
win = Tk()

# ウィンドウのサイズを設定
win.geometry("700x350")

def cal_sum():
    # 入力値を文字列から整数に変換
    t1 = int(a.get())
    t2 = int(b.get())
    sum = t1 + t2
    label.config(text=sum)

# Entryウィジェットを作成
Label(win, text="1つ目の数値を入力してください", font=('Calibri 10')).pack()
a = Entry(win, width=35)
a.pack()
Label(win, text="2つ目の数値を入力してください", font=('Calibri 10')).pack()
b = Entry(win, width=35)
b.pack()

label = Label(win, text="合計: ", font=('Calibri 15'))
label.pack(pady=20)

Button(win, text="合計を計算", command=cal_sum).pack()

win.mainloop()

実行結果

このプログラムを実行すると、2つの入力欄が表示されたウィンドウが現れます。それぞれの欄に整数を入力して「合計を計算」ボタンをクリックすると、cal_sum()関数内でint(a.get())int(b.get())によって入力値が整数に変換され、その合計がラベルに表示されます。

ポイントまとめ

  • Entryウィジェットの.get()メソッドは、入力内容を常に文字列として返す。
  • 数値計算を行うには、int()関数で明示的に整数へ変換する。
  • ユーザーが数字以外の文字を入力した場合、int()はエラー(ValueError)になるため、実用的なアプリではtry-except文による例外処理や、入力値のバリデーションを組み合わせるとより安全です。
  1. TkinterのEntryウィジェットにプレースホルダーを追加する方法

    Tkinterは、ボタン、テキスト、エントリ(Entry)、ダイアログなどのウィジェットを提供しており、これらを組み合わせることでGUIアプリケーションを効率的に開発できます。しかし、TkinterのEntryウィジェットには、標準ではプレースホルダーの機能が用意されていません。 プレースホルダーとは、入力欄にあらかじめ表示される仮のテキストのことで、「ここに何を入力すればよいか」をユーザーに伝える重要な役割を果たします。 本記事では、insert(挿入位置, テキスト) 関数を使って、Entryウィジェットにプレースホルダーを追加する方法を解説します。この関数は、第1引数に挿入位置(先頭なら

  2. Tkinterウィジェットの片側だけにパディングを追加する方法

    特定のウィジェットの片側(上下または左右のいずれか)にのみパディング(余白)を追加したいケースはよくあります。Tkinterでは、pack()メソッドとgrid()メソッドを使うことで、このような部分的なパディングを簡単に実現できます。 pack()メソッドとgrid()メソッドの違い pack()メソッドでは、「padx」(左右の余白)と「pady」(上下の余白)の値を個別に定義します。これにより、水平方向と垂直方向それぞれに異なるパディングを柔軟に設定できます。 一方、grid()メソッドの場合は、X軸方向とY軸方向のパディングを表す2つのタプル(x と y)を指定するだけで、任意の軸まわ