在QML應用中實現threading多工

2021-07-03 04:44:06 字數 910 閱讀 7534

在這個例子中,我們將介紹如何在qml應用中使用qml語言提供的threading功能,實現多工。更多的閱讀在:

我們使用ubuntu sdk來建立以個最基本的qml專案:

import qtquick 2.0

import ubuntu.components 1.1

/*! \brief mainview with a label and button elements.

*/mainview

}listmodel

workerscript

timer }}

}}

在這裡,我們使用了乙個listview來顯示從worker thread傳送來的資訊(通過更新model)。這裡:

workerscript
workerscript定義了乙個worker thread。它的執行**在dataloader.js中:

// ![0]

workerscript.onmessage = function(msg) ;

msg.model.sync(); // updates the changes to the list

}}// ![0]

在main.qml中,我們定義了乙個timer,每2秒傳送乙個請求給worker thread。它的引數是乙個如下定義的object:

在work thread接受到傳送來的資訊後,在上面的**中,檢查msg中的action,並同時更新傳入的model。

執行我們的例程:

整個專案的原始碼在:

在Qt Gui中嵌入QML

測試環境 qt 5.5.1 msvc2010 新建vs工程,qt gui專案 專案名字這裡是qtfirst 設計ui介面,如圖 因為是雙向測試,所以先來個按鈕,把pushbutton的clicked訊號連線到qtfirst的槽 qtfirst.h class qtfirst public qmain...

利用Thread子類在程式中實現多執行緒例項

學到多執行緒裡面了,開始有一些很基本的問題不太清楚,所以花了一些時間去了解,開始在看到實現多執行緒的兩種方法時,就有疑惑為什麼不直接用thread類來實現多執行緒,而是用thread子類去實現,因為系統中thread類中的run方法體為空的,滿足不了我們希望對執行緒操作的眾多功能需求,所以可以在子類...

如何實現QML中的pathview

在之前的很多練習及教程中,我們展示了如何在qml語言設計中使用listview及gridview來展示我們所需要的效果 在今天的教程中,我們來深刻體會一下如何使用qml語言中的pathview來展示我們的效果 在pathview中,我們可以用它來顯示旋轉木馬的效果 如果大家有使用我們的ubuntu ...