私は数時間は検索しましたが、同じ問題を抱えている人は見つかりませんでした。私の質問はコードの後に来る。TkinterのEntryウィジェットから入力テキストを取得して使用します。
class Interface:
def __init__(self, root):
--- Stuff Here ---
self.hEntry = Entry(lFrame)
self.hEntry.bind("<Return>", self.aMethodToGetText)
--- Stuff Here ---
def aMethodToGetText(self, event):
return event.widget.get()
def anotherMethod(self):
--- Stuff Here ---
self.hEntry.pack()
h = self.aMethodToGetText()??????????????????
--- Stuff Here ---
私は方法 aMethodToGetTextリターンというのが私の変数時間に価値を与えたいです。そのようにそれを呼び出すと、OFCエラーを与える:
TypeError例外:aMethodToGetText()欠落1つの必須位置引数: 'イベント'
H = self.aMethodToGetText(self.hEntry)を使用し、ウィジェットを除去します。も機能しません。
1つのエントリがあれば簡単に解決できます。しかし、私は多くのエントリーを持っており、すべてのエントリーに対して一般的なテキストゲッターメソッドを作成する必要があります。
編集:だから私は各エントリに1つの機能が必要ですか?私は、さまざまな条件、機能、スライスで各エントリを使いたいと思っています。だから私は各エントリの変数が必要です。 EnterModeを押すたびに関数を開始したくないため、anotherMethod(self)をaMethodToGetText(self、event)に移動することはできません。私が同じことをしたいエントリでEnterを押すと、そのエントリを変数に割り当てます。しかし、各エントリは別の変数に割り当てる必要があります。私はエントリーをお互いに比較する必要があります。
EDIT 2:
class Interface:
def __init__(self, root):
--- Stuff Here ---
self.aListForEntries = []
self.hEntry = Entry(lFrame)
self.hEntry.bind("<Return>", self.aMethodToGetText)
self.aEntry = Entry(lFrame)
self.aEntry.bind("<Return>", self.aMethodToGetText)
--- Stuff Here ---
def aMethodToGetText(self, event):
entry = event.widget.get()
self.aListForEntries.append(entry)
def anotherMethod(self):
--- Stuff Here ---
self.hEntry.pack()
h = self.entryList[0] #IndexError: list index out of range
--- Check the first Entry ---
self.aEntry.pack()
a = self.entryList[1]
--- Check the second Entry ---
if h == a:
Do stuff
--- Stuff Here ---
ユーザーが入力押された前に、リストが空であるので、私はエラーを取得します。私はtime.sleep(x)
の行の前にh = self.entryList[0]
のスクリプトをポーズしようとしましたが、それは動作しません。ユーザがEnterを押す前に、プログラム全体がanotherMethod(self)
を実行することは望ましくありません。
@noscreenname最初のパラメータ 'self'はメソッドであることを暗示しています。これは1つのパラメータ' event'が必要です。 – Delioth
複数のエントリがある場合、そのようなケースの例を挙げることができます。解決方法は、各エントリの処理内容によって大きく異なります。あなたがどんなエントリーでもenterを押すならば、彼らはすべて同じものか、それぞれ違う何かをするべきですか?異なる場合は、このエントリまたはそのエントリが使用されている場合、何をすべきかの条件を追加しない限り、一般的な機能を持つことはできません。 –
@StevenSummersだから、私は各エントリに1つの機能が必要ですか?私は、さまざまな条件、機能、スライスで各エントリを使いたいと思っています。だから私は各エントリの変数が必要です。ボタンが押されるたびに関数を開始したくないため、anotherMethod(self)をaMethodToGetText(self、event)に移動することはできません。 EDIT:同じことをしたいエントリでEnterキーを押した場合は、そのエントリを変数に割り当てます。しかし、各エントリは別の変数に割り当てる必要があります。私はエントリーをお互いに比較する必要があります。 –
WildRoyal