如何 运行 QtConcurrrent Qt6 的成员函数?输入 'decay_t cannot be used prior to '::' 因为它没有成员)
how to run a membber function with QtConcurrrent Qt6? type 'decay_t cannot be used prior to '::' because it has no members)
我正在尝试 运行 一个成员函数,但我遇到了一个错误,请帮助我
我试过这行代码
QFuture 未来 = QtConcurrent::run(this,&backD::analysa);
analysa() 是一种 returns qlonglong
的方法
我在问这里和 QtConcurrent::run(this->analysa()) 之前尝试了很多版本;是其中之一,我看起来像 lambda 形式只适用于 void 而我正在使用 qlonglong。
她是我的会员 methode analysa
qlonglong backD::analysa()
{
QString currentPath = tabWidget::currentWidget()->fsCurrentPath();
qlonglong size=0;
QDirIterator it(currentPath,QStringList()<<"*.*",QDir::Files,QDirIterator::Subdirectories);
while(it.hasNext())
{
QFileInfo infos(it.next());
size += infos.size();
}
return size;}
尝试 QtConcurrent::run([this]{ return analysa(); });
或 QtConcurrent::run([this] -> qlonglong { return analysa(); });
,以适合您的情况为准。
我正在尝试 运行 一个成员函数,但我遇到了一个错误,请帮助我
我试过这行代码
QFuture
我在问这里和 QtConcurrent::run(this->analysa()) 之前尝试了很多版本;是其中之一,我看起来像 lambda 形式只适用于 void 而我正在使用 qlonglong。 她是我的会员 methode analysa
qlonglong backD::analysa()
{
QString currentPath = tabWidget::currentWidget()->fsCurrentPath();
qlonglong size=0;
QDirIterator it(currentPath,QStringList()<<"*.*",QDir::Files,QDirIterator::Subdirectories);
while(it.hasNext())
{
QFileInfo infos(it.next());
size += infos.size();
}
return size;}
尝试 QtConcurrent::run([this]{ return analysa(); });
或 QtConcurrent::run([this] -> qlonglong { return analysa(); });
,以适合您的情况为准。