[英]Qt Quick signal not emitted
編輯
我沒有找到訪問 Class-Object 的活動實例的方法,所以我將所有Q_PROPERTIES
轉移到一個 Class 中,這樣它們就可以相互交互了。 不是那么干凈和OOP-ish,但它可以工作。
我有一個 class 從 REST-Call 接收數據。 有了這些數據,我想調用另一個 class 的Q_PROPERTY
Setter-Function,它工作正常。 我可以在調試模式下讀取我的屬性。 但有一件事不起作用:從另一個 class 調用Q_PROPERTY
-Setter-Functions,不會發出信號(通常在更改此屬性時觸發)。
我正在使用具有讀寫通知功能的Q_PROPERTY
( Q_PROPERTY(QUuid id READ getId WRITE setId NOTIFY idChanged
)。通過qmlRegisterType<VF_Kiste>("qt.kiste", 1,0, "Kiste");
后main.cpp
我可以訪問 QML 中的屬性。
二傳手:
void VF_Kiste::setId(const QUuid& id)
{
if (id == _id)
return;
_id = id;
emit idChanged();
}
所以調用這個 Setter-Function 會改變屬性(我試過這個並且它有效)但不會發出我需要的 QML-Part 信號。 這是我調用setter的地方。
VF_Kiste* kst = new VF_Kiste();
...
kst->setId(...);
在 QML 中,我想調用描述的 function 的onIdChanged()
-函數,但如果不發出信號,我無法訪問屬性的更改值。
我還嘗試直接從 QML 調用Q_PROPERTY
,而不是從繼承的 class 調用 Q_PROPERTY,這也可以,所以問題在於從另一個 class 調用設置器。
編輯
我沒有找到訪問 Class-Object 的活動實例的方法,所以我將所有Q_PROPERTIES
轉移到一個 Class 中,這樣它們就可以相互交互了。 不是那么干凈和OOP-ish,但它可以工作。
我有一個 class 從 REST-Call 接收數據。 有了這些數據,我想調用另一個 class 的Q_PROPERTY
Setter-Function,它工作正常。 我可以在調試模式下讀取我的屬性。 但有一件事不起作用:從另一個 class 調用Q_PROPERTY
-Setter-Functions,不會發出信號(通常在更改此屬性時觸發)。
我正在使用具有讀寫通知功能的Q_PROPERTY
( Q_PROPERTY(QUuid id READ getId WRITE setId NOTIFY idChanged
)。通過qmlRegisterType<VF_Kiste>("qt.kiste", 1,0, "Kiste");
后main.cpp
我可以訪問 QML 中的屬性。
二傳手:
void VF_Kiste::setId(const QUuid& id)
{
if (id == _id)
return;
_id = id;
emit idChanged();
}
所以調用這個 Setter-Function 會改變屬性(我試過這個並且它有效)但不會發出我需要的 QML-Part 信號。 這是我調用setter的地方。
VF_Kiste* kst = new VF_Kiste();
...
kst->setId(...);
在 QML 中,我想調用描述的 function 的onIdChanged()
-函數,但如果不發出信號,我無法訪問屬性的更改值。
我還嘗試直接從 QML 調用Q_PROPERTY
,而不是從繼承的 class 調用 Q_PROPERTY,這也可以,所以問題在於從另一個 class 調用設置器。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.