0

さらに 30 分間の検索を行った後、結果を理解できないか、結果を見つけることができませんでした...

続行する前にアプリケーションにボタンのクリックを強制的に待機させ、次のコード スニペットを例として示します。

... 

def crack(self, Filenamelist, forceclick):

        forceclick += 1

        self.crackButton.configure(state='active')

        if forceclick != 2:

            self.crackButton.bind('<ButtonRelease-1>', self.crack(Filenamelist, forceclick))

        self.outputBox.insert(END, '\n' + 'Parsing answer numerator...' + '\n')

...

基本的には、関数 crack() をロードし、1 をインクリメントして forceclick (これは事前に 0 に設定されていました)、「クラック ボタン」をアクティブ状態に変更し、ユーザーがバインドを誘発するのを待っている間にボタンをバインドします。 . バインドが開始された後、関数はリロードし、forceclick に 1 をインクリメントしてから、if ステートメントをスキップします。

ただし、プログラムを実行すると、キーがクラック ボタンにバインドされ、if ステートメントをバイパスする関数が自動的にリロードされます... 以前に while ループを試しましたが、うまく終了しませんでした...

助言がありますか?

4

1 に答える 1

0

バインドされた関数をラムダにする必要があります。

self.crackButton.bind('<ButtonRelease-1>', lambda e: self.crack(Filenamelist, forceclick))

現在、関数を呼び出しています。

あなたが達成しようとしていることを行うためのより良い方法はおそらくありますが、これはあなたの当面の問題を解決するはずです。

于 2012-06-04T23:18:20.293 に答える