質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Tkinter

Tkinterは、GUIツールキットである“Tk”をPythonから利用できるようにした標準ライブラリである。

Q&A

解決済

1回答

1721閲覧

Python Tkinter クリックされたウィジェットを取得したい

person

総合スコア223

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Tkinter

Tkinterは、GUIツールキットである“Tk”をPythonから利用できるようにした標準ライブラリである。

0グッド

0クリップ

投稿2020/06/28 05:02

Tkinterでループでウィジェットを作成します。
クリックされたときにウィジェットを取得したいです。

ウィジェットがボタンのときは、textで押されたボタンを判断することが可能ですが、
ウィジェットがエントリのときは、どのエントリがクリックされたかを判断することは可能ですか?

参考
python tkinter クリックされたウィジェットを取得する

現状のソースコード

Python

1import tkinter as tk 2 3def pushed(e): 4 print(e.widget) 5 6win = tk.Tk() 7 8# 空のテキストボックスを繰り返し作成 9for i in range(10): 10 entry = tk.Entry(win) 11 entry.bind("<ButtonRelease>", lambda e: pushed(e)) 12 entry.grid() 13 14win.mainloop() 15 16# 下のデータから判別可能か? 17""" 一番上から順にテキストボックスをクリックした時の表示 18.!entry 19.!entry2 20.!entry3 21.!entry4 22.!entry5 23.!entry6 24.!entry7 25.!entry8 26.!entry9 27.!entry10 28"""

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

>エントリのときは、どのエントリがクリックされたかを判断することは可能ですか?

問題点が把握できないです、
現状のコードは Entry で、「どのエントリがクリックされたかを判断すること」は出来てるように思いますが
期待されてる動作とは違うという事ですか?

追記: Button と Entry の違いから
エントリに入力された値が知りたい print(e.widget.get()) という事でしょうか?


質問とは関係ない部分ですが、for 文内で lambda を使うのは気を付けた方が良いです。
現状のコードでは問題ありませんが、lambda 内でループ変数を参照するときに問題になります。
ループの中で異なる値で定義されたラムダ式が、同じ値を返すのはなぜですか?

現状のコードでは単純にlambda は不要です。entry.bind("<ButtonRelease>", pushed)

投稿2020/06/28 05:21

編集2020/06/28 05:22
teamikl

総合スコア8664

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

person

2020/06/28 06:25

あ、ごめんなさい。 何か勘違いしてました。これで問題なかったです。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問