簡體   English   中英

Qt5 QtConcurrent rewrtie for Qt6

[英]Qt5 QtConcurrent rewrtie for Qt6

在 Qt5 中,我使用了 QtConcurrent 之類的

void  MainWindow::startServerBG(int arg){
}
QFuture<void> future = QtConcurrent::run(this,&MainWindow::startServerBG,arg);

但同樣的代碼在 Qt6 中給出了編譯錯誤。

該文檔指定了一些功能更改,但我無法理解,誰能告訴我如何為 Qt6 重寫上面的代碼

錯誤

mainwindow.cpp:96: 錯誤:靜態斷言失敗:傳遞的可調用對象的第一個參數不是 QPromise & 類型。 您是否打算傳遞一個將 QPromise 和類型作為第一個參數的可調用對象? 否則無法使用傳遞的參數調用函數。

QConcurrent::run的簽名已更改為使用可變數量的參數:

template <typename T>
QFuture<T> run(Function &&f, Args &&...args)

因此,要修復您的代碼,只需更改

QFuture<void> future = QtConcurrent::run(this,&MainWindow::startServerBG,arg);

QFuture<void> future = QtConcurrent::run(&MainWindow::startServerBG, this, arg);

https://doc.qt.io/qt-6/concurrent-changes-qt6.html#qtconcurrent-run

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM