我有一个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 对象等。