Loading [MathJax]/jax/output/HTML-CSS/config.js

Rainbow Engine

IT技術を分かりやすく簡潔にまとめることによる学習の効率化、また日常の気付きを記録に残すことを目指します。

Python

PythonのTkinterでテキストボックスの値を取得する方法

投稿日:2021年1月19日 更新日:

<目次>

(1) PythonのTkinterでテキストボックスの値を取得する方法
 (1-1) 構文
 (1-2) キャンバスの設定
 (1-3) 入力ボックスの追加
 (1-4) ボタン押下時の処理定義
 (1-5) ボタンの配置
(2) サンプルプログラム

(1) PythonのTkinterでテキストボックスの値を取得する方法

Tkinterパッケージで作った画面に、テキストボックスを配置して、そこにユーザーが入力した値を取得する方法をご紹介します。次の例ではテキストボックスに「5」と入れてボタンを押すと、その下の部分に入力された数字を取得・表示しています。

(図)テキストボックスに「5」と入れてボタンを押すと、下に入力した「5」が表示される

これを実現する最小限の実装は、ざっくり以下ステップに分かれます。
①ウィンドウの設定
②キャンバスの設定
③入力ボックスの追加
④ボタン押下時の処理定義

⑤ボタンの配置

これらのステップを順を追って解説していきます。

(1-1) ウィンドウの設定

まずは、パッケージのインポート並びにTkクラスのインスタンス化やウィンドウの設定を行います。windowは画面の最も基礎となる部品で、全てのGUI要素を含みます。

(STEP1)

  1. import tkinter as tk
  2. from tkinter import ttk
  3.  
  4. # Tkクラスのインスタンス化
  5. window = tk.Tk()
  6. #(1) ウィンドウの「タイトル」と「サイズ」を指定
  7. window.title("Rainbow Text Box")
  8. window.geometry('600x400')

(図111)STEP1実行結果

「Tkクラス」や「ウィンドウ」については別記事でもう少し詳細に触れてますので、併せて読んで頂くと理解が深まると思います。
https://rainbow-engine.com/python-tkinter-createscreen/

目次にもどる

(1-2) キャンバスの設定

canvasはframe中の表示領域で、ボックスやボタンや表などを配置する事ができます。生成時に幅(width)や高さ(height)を指定する事ができます。

(STEP2)

  1. #(2)キャンバスの作成
  2. # キャンバスの設定
  3. canvas = tk.Canvas(window, width=300, height=200)
  4. canvas.pack()

 

目次にもどる

(1-3) 入力ボックスの追加

次に「入力ボックス」(Entry)を生成します。入力ボックスはユーザーが画面から入力した値を取得するために使用できます。
描画はキャンバスの「create_window」メソッドで行い、引数にはキャンバス中のどの位置に配置するか?の座標を指定できます。
 
(STEP3)
  1. #(3)入力ボックスの作成
  2. # 入力ボックスのラベル
  3. elabel = ttk.Label(window, text = "整数を入れてボタンを押してください")
  4. canvas.create_window(0, 80, window=elabel)
  5. # 入力ボックスの生成・描画
  6. entry = tk.Entry (window)
  7. canvas.create_window(0, 100, window=entry)

(図131)

目次にもどる

(1-4) ボタン押下時の処理定義

ここは各自で好きな処理を定義します。下記は1例ですが、入力ボックスに入力された値(entry.get())を変数に格納し、その値をラベルに格納してキャンバス(canvas)に描画しています

つまりは、ユーザーがテキストボックスに入力した値を取得している事になります。

(STEP4)

  1. #(4)ボタン押下時の処理定義
  2. def getValue ():
  3. tval = entry.get()
  4.  
  5. label = tk.Label(window, text=tval)
  6. canvas.create_window(0, 160, window=label)

 

目次にもどる

(1-5) ボタンの配置

次に「ボタン」(Button)を生成します。ボタンは関数を指定して、処理を実行させる事ができます。

(STEP5)

  1. #(5)ボタンの作成
  2. # ボタンの生成・描画
  3. button = tk.Button(text='入力テキスト値の取得', command=getValue)
  4. canvas.create_window(0, 130, window=button)

 

目次にもどる

(2) サンプルプログラム

これまでの(STEP1)~(STEP5)までの内容を全て纏めたサンプルプログラムをご紹介します。
 
(サンプルプログラム)

  1. import tkinter as tk
  2. from tkinter import ttk
  3. if __name__ == '__main__':
  4. # Tkクラスのインスタンス化
  5. window = tk.Tk()
  6. #(1) ウィンドウの「タイトル」と「サイズ」を指定
  7. window.title("Rainbow Text Box")
  8. window.geometry('600x400')
  9. #(2)キャンバスの作成
  10. # キャンバスの設定
  11. canvas = tk.Canvas(window, width=300, height=200)
  12. canvas.pack()
  13. #(3)入力ボックスの作成
  14. # 入力ボックスのラベル
  15. elabel = ttk.Label(window, text = "整数を入れてボタンを押してください")
  16. canvas.create_window(0, 80, window=elabel)
  17. # 入力ボックスの生成・描画
  18. entry = tk.Entry (window)
  19. canvas.create_window(0, 100, window=entry)
  20.  
  21. #(4)ボタン押下時の処理定義
  22. def getValue ():
  23. tval = entry.get()
  24.  
  25. label = tk.Label(window, text=tval)
  26. canvas.create_window(0, 160, window=label)
  27. #(5)ボタンの作成
  28. # ボタンの生成・描画
  29. button = tk.Button(text='入力テキスト値の取得', command=getValue)
  30. canvas.create_window(0, 130, window=button)
  31.  
  32. window.mainloop()

(図211)実行結果
テキストボックスに「5」と入れてボタンを押すと、下に入力した「5」が表示される

(操作動画)
画像だと流れが分かりにくいので、動画も併せて掲載いたします。

目次にもどる

Adsense審査用広告コード


Adsense審査用広告コード


-Python

執筆者:


comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

関連記事

PythonでSQLAlchemyを使ってOracleDBに接続する方法

(0)目次&概説 (1) 記事の目的  (1-1) 目的  (1-2) 前提条件 (2) 事前準備  (2-1) 準備1(cx_oracleパッケージの導入)   (2-1-1) インストール資源の入 …

Anacondaのインストール手順(Windows 10の例)

  <目次> (1) Anacondaのインストール手順(Windows 10の例)  (1-1) STEP1:インストーラーの入手と起動  (1-2) STEP2:インストール  (1-3 …

PythonのFlaskフレームワークを用いたRest APIのサンプル

  <目次> (1) PythonのFlaskフレームワークを用いたRest APIのサンプル  (1-1) Flaskとは  (1-2) STEP1:Flaskフレームワークの導入  (1 …

Python環境にpyodbcをインストールしてSQLServerに接続する手順

<目次> (1) PythonにpyodbcをインストールしてSQLServerに接続する手順  (1-1) 手順1:ODBCドライバのインストール  (1-2) 手順2:pythonパッケージの導入 …

Slack AppのWorkflow Stepsの使い方

  <目次> (1) Slack AppのWorkflow Stepsの使い方  (1-0) やりたいこと  (1-1) STEP1:Slackボットの開発(所要時間:60分)  (1-2) …

  • English (United States)
  • 日本語
S