qlabelを更新するためにAJAXのような呼び出しを実行するイベントリスナーを設定できるはずですが、これはQTで無限に複雑に思えます。whileループでQLabelを更新するには
基本的には、QLabelのテキストを更新することを試みています。これは、ボタンがクリックされたときに壊れる無限ループ(フラグを含むスロットのようなもの)で発生します。この理由は、私が本質的に、ユーザーが更新したテキストファイルを読み込んでいることです。ユーザーがテキストファイルを保存すると、コンテンツはQLabelに更新されます。ユーザーがテキストに満足したとき、彼らは「送信」します。その後、リスナを殺し、テキストコンテンツを事前定義されたEメールアドレスにEメールする。これは仕事に関連しているので、ユーザーストーリーはかなり変更されていますが、全体的なコンセプトは私が進めているものです。
私は、次の手順を実行して、フラグと、このリスニングの設定のようなものをやってみました:
while not self.flag_set:
self.my_text = text_read_module.get_text(self)
self.label_60.setText(self.my_text)
QCoreApplication.processEvents()
sleep(2)
私もそれ自身のプロセスにこれを押して終了信号を含むボタンが
呼び出されたときに終了してみましたどちらも画面上にコンテンツを表示することはできませんが、便利なダンディープリントステートメントのおかげで、実行中だと言えます。
PSこれはPythonで行われましたが、C++ユーザーにとっては簡単です。
これを取得するにはどのような考えですか?ありがとう!
メインイベントループで 'processEvents'を呼び出すための使用例はほとんどなく、メインスレッドから' sleep'を呼び出すことは一般的には悪い考えです。設定が必要なテキストを常に確認する代わりに、信号/スロットの組み合わせを使用します。 –
私は通常、睡眠の支持者ではありません。私はそれをストップギャップとして使用していたので、1秒100回以上は実行していません。私は間違いなく信号/スロットのコンボを使用することを好むでしょう、このユーザの話で私はどのようにしますか? –
'text_read_module'がシグナルを送出できませんか? Qt以外のライブラリの一部ですか? –