ユーザーがボタンをクリックすると、データベース アクセスを伴う (遅い) 操作が実行されるとします。問題は、操作を直接呼び出すと、GUI が応答しなくなることです。
ui->comboBox->addItems(obj->getThingsFromDatabase())
また、シグナル/スロットを試し、obj にリクエストを発行してから、彼の応答 (別のシグナル) を待ちました。とにかく、結果は同じで、応答しない GUI でした。
この問題へのアプローチはどうあるべきですか?
ユーザーがボタンをクリックすると、データベース アクセスを伴う (遅い) 操作が実行されるとします。問題は、操作を直接呼び出すと、GUI が応答しなくなることです。
ui->comboBox->addItems(obj->getThingsFromDatabase())
また、シグナル/スロットを試し、obj にリクエストを発行してから、彼の応答 (別のシグナル) を待ちました。とにかく、結果は同じで、応答しない GUI でした。
この問題へのアプローチはどうあるべきですか?
これに対処する最善の方法は、別のスレッドを使用してデータベースから取得することです。
これは、Qtでスレッドを使用する方法の本当に良いガイドです:Qt4
でのスレッドの基本