QFileDialog::getExistingDirectory
を使用しているときに、アプリケーションがQSerialPortでデータの受信を停止します。ダイアログの終了後、データの受信を再開します。それを防ぐ方法はありますか?QSerialPortがQFileDialog :: getExistingDirectoryがアクティブな間に応答を停止します。
1
A
答えて
1
あなたはブロッキング方法を呼び出しています。そのメソッドが実行されている間、イベントループは実行できません。なぜなら、コールスタックの一番下にあるスロットで、スロットが戻ってくるのを待っているからです。これは、世界が非同期であるため、実際に起こっていることを反映しない同期的なコーディング方法です。そのようにコード化しないでください。
代わりに、ファイルダイアログが表示されていない間に設定してから、show()
とし、QDialog::accepted()
シグナルに接続されたスロットで目的のコードを実行する必要があります。
あなたはアウト設定を考慮してgetExistingDirectory
と同様に使用すてきな非同期ヘルパーを、持っている可能性があり:
void before() {
foo();
auto dir = QFileDialog::getExistingDirectory(); // bad synchronous code
bar(dir);
}
void after() {
foo();
withExistingDirectoryDo([this](const QDir & dir) {
bar(dir);
}, this);
}
関連する問題
- 1. Python Spyderが応答を停止する
- 2. GridViewがページアップ/ページダウンキーに応答するのを停止します
- 3. アプリケーションがランダムに応答を停止します。
- 4. デバッギング停止時にカッシーニが応答しなくなる
- 5. アプリがエラーなしでシミュレータの応答を停止する
- 6. 一時停止/再開時にAndroidが応答しない
- 7. Visual Studio 2010 SP1が応答を停止します
- 8. VB6アプリケーションが応答を停止します
- 9. WCFが要求の応答を停止します
- 10. Xcodeデバッガが応答を停止しました
- 11. ラズベリーパイのフラスコサーバーが応答を停止しました
- 12. TCP応答の停止
- 13. システムが応答を停止してyamiのエラーをスローする
- 14. Postgres BDRレプリケーションが停止しました - レプリケーションスロットがアクティブでない
- 15. 戻るボタンによってアプリケーションが応答を停止する
- 16. NodeJSが11リクエスト後に応答を停止する
- 17. IIS Expressは、少しの非アクティブの後にすべてのリクエストに対する応答を停止します
- 18. Java Web Serverが突然応答なしで例外的に停止する
- 19. pygameアプリケーションが応答を停止するのを防ぐ方法
- 20. 一時停止プログラムの応答が得られるまで
- 21. NodeMCU HTTPサーバーが応答を停止する
- 22. 遅いクエリでApacheが応答を停止する
- 23. 展開されたC++ AMPアプリケーションが応答を停止する
- 24. Apple Game Centerのダイアログがイベントへの応答を停止する
- 25. Python GraphWinがWinsoundで応答を停止する
- 26. AndroidのUIが応答を停止する
- 27. Azure Appサービス(モバイル)が応答を停止する
- 28. Zebra LP2844がZPLコマンドまたはファイルへの応答を停止しました
- 29. アクティブなモデルシリアライザが正しい属性で応答しません
- 30. weblogic管理者が応答を停止し、結果を返さない
それは「QFileDialogをフラグを追加することで機能します:::
ここでは、コード変換ですDontUseNativeDialog "QString ldossier = QFileDialog :: getExistingDirectory(これは、"Sélectionnerundossier "、" C:/ PROJET/Qt/sauvegarde/texte/"、QFileDialog :: ShowDirsOnly | QFileDialog :: DontUseNativeDialog); – iboua