将QVariantMap传递给Javascript(QtWebkit)

时间:2013-07-09 13:30:56

标签: qt4.7 qwebkit

我有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:。 有人能告诉我我做错了吗?

2 个答案:

答案 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) );

为什么绑定只能以这种方式工作?我不知道。