美好的一天!無法使用QMetaObject :: invokeMethod調用Q_PROPERTY方法()
從Qt 4.7.3 docs不清楚可以使用QMetaObject :: invokeMethod()調用或不使用屬性。但真正奇怪的是兩個電話都失敗了:
class A : public QObject
{
Q_OBJECT
public:
Q_PROPERTY(int value READ value)
int value() { return 0; }
Q_PROPERTY(int invokableValue READ invokableValue)
Q_INVOKABLE int invokableValue() { return 0; }
};
...
int returnValue;
QMetaObject::invokeMethod(aPtr, "value"
, Q_RETURN_ARG(int, returnValue));
QMetaObject::invokeMethod(aPtr, "invokableValue"
, Q_RETURN_ARG(int, returnValue));
這意味着,Q_PROPERTY禁止使用Q_INVOKABLE。
讓我們來看看a_moc.cpp:
if (_c == QMetaObject::InvokeMetaMethod) {
// no calls here
}
#ifndef QT_NO_PROPERTIES
else if (_c == QMetaObject::ReadProperty) {
void *_v = _a[0];
switch (_id) {
case 0: *reinterpret_cast< int*>(_v) = value(); break;
case 1: *reinterpret_cast< int*>(_v) = invokableValue(); break;
}
我認爲這是一次報告錯誤&功能的要求,但可能在某種程度上,這些問題都可以解決?
UPDATE:
錯誤reported。
建議reported。
你的問題是什麼? –
也許我不應該在這裏發表,因爲這是問題描述,但不是問題。 –
你可以隨時把它變成一個問題。詢問是否有其他人有類似的問題,或設法解決它... –