簡體   English   中英

Qt3d用c ++輸入

[英]Qt3d Input in c++

是否可以在c ++中處理qt3d中的鼠標輸入? 我可以使用qt3d repo中的樣本使用qml

https://github.com/qtproject/qt3d/tree/5.6/examples/qt3d/mouseinput-qml

然而,沒有c ++等價物。

盡管經過多次嘗試(甚至嘗試使用附加到各種小部件的事件過濾器捕獲輸入),我仍然無法在c ++中捕獲鼠標事件。 對於此版本的qt(5.6),qt3d的c ++鼠標輸入api是完整的,還是應該等到5.7版?

雖然這是一個老問題,但如果有人需要,我會提供答案。

首先,總是存在與QML相當的C ++。 這是因為QML只是實例化C ++類。

在這種情況下,根據QML文檔 ,實例化類QMouseController

查看您提供的repo中的其余代碼,您必須將QMouseController創建為QMouseController的子QEntity (或者不要,我認為在將其設置為組件時,父級也將相應地設置)並添加它作為所述實體的一個組成部分。

QML代碼中的此property MouseInput mouseInput僅將其作為屬性添加到實體(我假設)。 您可能還可以省略將其添加為屬性,而是為其分配一個ID(在MouseInput塊內)並使用此ID將其添加到實體,即

Entity {
    id: sphere1

    MouseInput {
        id: mouseInput

        controller: mouseController
    }

    components: [mouseInput]
}

暫無
暫無

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

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