【问题标题】:Pass a QVariantMap to Javascript (QtWebkit)将 QVariantMap 传递给 Javascript (QtWebkit)
【发布时间】:2013-07-09 13:30:56
【问题描述】:

我有一个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:。 谁能告诉我我做错了什么?

【问题讨论】:

    标签: qt4.7 qwebkit


    【解决方案1】:
    mybinding.mysignal.connect( this, function( map ) {
        alert( "Map: " + map );  
    } );
    

    你的地图是一个对象(QVariantMap)。所以如果你想访问你应该使用的值

    mybinding.mysignal.connect( this, function( map ) {
        alert( "Map_ID: " + map.id );  
    } );
    

    这会给你一个提示信息,指示 54

    【讨论】:

      【解决方案2】:

      发现通过QVariant 有效:

      c++:

      signals:
          void mysignal( QVariant map );
      
      
      
      QVariantMap map;
      map.insert( "id", 54 );
      emit mysignal( QVariant::fromValue(map) );
      

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-07-02
        • 2014-01-17
        • 2017-09-03
        • 2021-03-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多