QString
qml にエクスポートされるオブジェクトがあります。C++
値を更新し、プロパティの変更されたシグナルを発行しているコードでは、スレッドがビジーであるため更新されません。そのとき、for ループでコスト操作を使用します。その目的のためQCoreApplication::processEvents()
に、ループの各反復で次のような遅延信号を送信できるように使用します。
foreach(const QVariant& item, _manifestFile) {
setStatusString(QString("Checking file %1 of %2...").arg(currentProcessingFile++).arg(totalFilesCount));
QCoreApplication::processEvents(); // TODO remove
//...
}
上記で説明しsetStatusString
た変数のセッターはどこにありますか:QString
void Updater::setStatusString(const QString &statusString) {
_statusString = statusString;
emit statusStringChanged();
}
それを削除して信号を発信できるようにするにはどうすればよいprocessEvents()
ですか? スレッド化された、Qt-meta オブジェクトなど、あらゆる解決策を歓迎します。