3

使用したいプログラムのスケルトンがあります。

from tkinter import *
import urllib
import urllib.request
import xml.etree.ElementTree as ET
root = Tk()

def program():
    print('Hello')

tex=Text(root)
tex.pack(side='right')
inputfield = Entry(root)
inputfield.pack(side='bottom')
text = inputfield.get()
but = Button(root,text="Enter", command = program) 
but.pack(side='bottom')

root.mainloop()

要約すると、プログラムは、テキスト フィールド、入力フィールド、および というボタンを備えた単なるフレームEnterです。実際にボタンを押さずに、ボタンが呼び出すプログラムを呼び出したい。入力フィールドにテキストを入力Enterし、キーボードを押して関数を呼び出したいです。

それはtkinterを通して可能ですか?

4

1 に答える 1

6

はい、可能です。Entry ウィジェットをイベントにバインドするだけです<Return>

inputfield.bind('<Return>', lambda _: program())

で使用されるコールバック関数bindは 1 つの引数 (Tkinter イベント) を受け取るため、program直接参照を使用することはできません。したがって、関数の定義を変更する代わりに、ラムダを使用して、最初の引数に「ドント ケア」変数_の一般的な名前である という名前を付けることができます。

于 2013-06-09T18:27:18.953 に答える