私はPythonに比較的慣れていませんが、いくつかの自動化をハックするために使用しています。クラスと、内部の関数が外部の関数と通信する方法に少し問題があります。私の本当の目標は、ほとんどのコードを書き直すことなく、既存の関数からスレッドを作成することです。
これが私の現在のモデルです。スーパークラスAppWindow(wx.Frame)
があり、その中に多くの関数が定義されています。
InitUI
インターフェイスを作成し、変数を初期化します。
ProcessComputers
いくつかの情報を収集するために、さまざまなワークステーションに手を差し伸べます。これは、このアプリケーションがコンソールベースだったときに私が書いたモジュールに大きく依存しています。他にも色々あります。呼び出す価値のない関数。
画面が更新されてイベントを受け入れる前に、これらのプロセスが完了することにすべてが依存しているため、これは明らかに GUI にとって悪いことです。
は既に UI 関数から分離されているためProcessComputer
、オブジェクトと変数を書き直して名前を変更することなく、これらの関数を別のスレッドに移動する最も簡単な方法は何だろうか?
ここで提案されているように、新しいクラスを作成しようとしました。問題は、2 つの新しいクラスを作成し、内臓をProcessComputer
CountEvent クラスに移動したときに、すべてが壊れたことです。self.textField を更新することも、AppWindow.textFieldAppWindow
を使用してそれを参照することもできなくなりました。私の変数はどれも新しいクラスにアクセスできませんでした。現在動作しているコードをあまり書き直さずに、この関数を独自のクラスに移動するより良い方法はありますか?
そうでない場合、 の内臓を書き換えてProcessComputer
残りのコードで遊ぶ最善の方法は何AppWindow
ですか?