我有QVariantMap
,我想通过信号传递给Javascript。
C ++:
signals:
void mysignal( QVariantMap map );
QVariantMap map;
map.insert( "id", 54 );
emit mysignal( map );
JS:
mybinding.mysignal.connect( this, function( map ) {
alert( "Map: " + map );
} );
现在警报只显示Map:
。
有人能告诉我我做错了吗?
答案 0 :(得分:1)
mybinding.mysignal.connect( this, function( map ) {
alert( "Map: " + map );
} );
您的地图是一个对象(QVariantMap)。所以,如果您想访问这些值,您应该使用
mybinding.mysignal.connect( this, function( map ) {
alert( "Map_ID: " + map.id );
} );
这会给你一条警告信息,表明54
答案 1 :(得分:0)
发现通过QVariant
传递:
C ++:
signals:
void mysignal( QVariant map );
QVariantMap map;
map.insert( "id", 54 );
emit mysignal( QVariant::fromValue(map) );
为什么绑定只能以这种方式工作?我不知道。