ですから、タイトルが最適な説明かどうかはわかりませんが、思いついたものです。これが取引です。私は、フォルダーにいくつかのサブクラスを追加するだけでアプリがそれらを見つけることができる一種のプラグインシステムを持つPyQtアプリに取り組んでいます。これらのコマンドには、独自の小さな UI を作成できるオプションがあります。基本的に、それらは次のようになります。
class Command(object):
def do(self):
self.setupUi()
self.pre()
self.run()
self.post()
def pre(self):
# do setup stuff for run method
def run(self):
# do actual work
def post(self):
# clean up after run
def setupUi(self):
# create a ui for this command
diag = QDialog()
diag.exec_()
今、私が直面している問題は、ダイアログを作成し、ユーザーがそれを受け入れるのを待つ 1 つのコマンドがあることです。次に、コマンドの実行中にダイアログを非モーダルに切り替え、ダイアログを更新する必要があります。これはすべてうまくいくようです。しかし、問題は、pre、run、および post メソッドが終了するまで、ダイアログを再描画できないことです。したがって、次のような setupUi がある場合:
def setupUi(self):
# create a ui for this command
diag = QDialog()
if diag.exec_():
diag.setModal(False)
diag.show()
processEvents を試しましたが、うまくいかなかったようです。他の誰かがこの問題に遭遇しましたか、または回避策を知っていますか?
ありがとう