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

Tkinterのテキストウィジェットでテキストを表示し、ユーザー入力を取得する方法

TkinterのTextウィジェットは、テキストの挿入や情報の表示だけでなく、ウィジェットに入力された内容を取得することもできる便利な部品です。テキストウィジェットからユーザーの入力を取得するには、get()メソッドを使用します。この記事では、実際に動作するサンプルコードとともに、その基本的な使い方を解説します。

get()メソッドの基本

get()メソッドでは、テキストの取得を開始する位置と終了する位置を引数として指定します。例えば text.get(1.0, "end-1c") のように記述すると、「1行目の先頭」から「末尾の改行を除いた位置」までのテキストを取得できます。"end-1c" を指定しないと、末尾の余分な改行文字まで取得されてしまうため、注意が必要です。

サンプルコード

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

# tkinterフレームのインスタンスを作成
win = Tk()

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

def get_input():
    # テキストウィジェットの内容を取得してラベルに表示
    label.config(text=text.get(1.0, "end-1c"))

# テキストウィジェットを追加
text = Text(win, width=80, height=15)
text.insert(END, "")
text.pack()

# 入力内容を取得するためのボタンを作成
b = ttk.Button(win, text="Print", command=get_input)
b.pack()

# 結果を表示するラベルウィジェットを作成
label = Label(win, text="", font=('Calibri 15'))
label.pack()

win.mainloop()

実行結果

上記のコードを実行すると、テキストウィジェットを含むウィンドウが表示されます。テキストウィジェットに任意の文字列を入力し、「Print」ボタンをクリックすると、入力した内容がボタン下のラベルに出力されます。

Tkinterのテキストウィジェットでテキストを表示し、ユーザー入力を取得する方法

まとめ

テキストウィジェットの入力値を取得する際のポイントは以下の通りです。

  • 入力の取得には get()メソッド を使用する
  • 取得範囲は get(1.0, "end-1c") のように指定するのが一般的
  • 取得したテキストは、ラベルや他のウィジェットに自由に渡して表示できる

この仕組みを応用すれば、メモアプリやフォーム入力など、さまざまなGUIアプリケーションを簡単に作成できます。

  1. 【Tkinter】テキストウィジェット(Text)から入力値を取得する方法

    PythonのTkinterでは、Textウィジェットを使って複数行のテキスト入力欄を簡単に作成できます。しかし、GUIアプリケーションを開発していると、ユーザーがテキストウィジェットに入力した内容をプログラム側で取得したい場面がよくあります。 テキストウィジェットからユーザーの入力を取得するには、.get()メソッドを使用します。このメソッドには取得する文字列の範囲を指定する必要があり、一般的にはテキストの先頭を示す 1.0 から末尾を示す end までを範囲として指定します。 コード例 # tkinterライブラリをインポート from tkinter import * # tkinte

  2. 【Python】Tkinterでテキストボックス(テキストウィジェット)の内容を削除する方法

    Tkinterには、ボタン、ダイアログボックス、各種ウィジェットなど、本格的なGUIアプリケーションを構築するための豊富な関数やモジュールが用意されています。複数行のテキストを扱えるテキストウィジェットを作成するには、Textウィジェットを使用します。これはコンストラクタとして機能し、親となるウィンドウやフレームを指定して呼び出します。作成したテキストウィジェットの内容を削除するには、組み込みメソッドdelete(first, last=None)を使います。このメソッドは、削除対象となる範囲(開始位置と終了位置)を引数として受け取ります。この記事では、クリックするとテキストボックス内の内容を