• 4145阅读
  • 3回复

[提问]额,又困住了.......QML多窗口信号与C++类的绑定??? [复制链接]

上一主题 下一主题
离线lovexin109
 

只看楼主 倒序阅读 楼主  发表于: 2014-11-30
额,先说想法,原来是写了一个计算密度的一页QML,QML只写的界面,而实现的类在C++里,因为只有一页,所以在main函数里绑定槽,这样做的只有一页的时候绑定是可以的
QApplication app(argc, argv);    CalGas calflow;                    //c++中的类
      QQmlApplicationEngine engine;
    engine.load(QUrl(QStringLiteral("qrc:///Calculator.qml")));
    QList<QObject*> qmlin;
    qmlin.append(engine.rootObjects());     QObject::connect(qmlin.first(),SIGNAL(qmlsend(QString,QString)),&calflow,SLOT(calslots(QString,QString)));
      QObject::connect(&calflow,SIGNAL(valuedisplay(QVariant,QVariant,QVariant,QVariant,QVariant)),qmlin.first(),SLOT(qmlchange(QVariant,QVariant,QVariant,QVariant,QVariant)));
因为想添加一些其它页,所以主页做成一个列表,点击弹出其它界面,这样写的(跟例子中的touch一样)
        StackView{
         id:mSdview
         anchors.fill: parent
         initialItem: Item{
             width: parent.width
             height: parent.height
             ListView{
                 anchors.fill: parent
                 model: pagemode
                 delegate: Mlistcompnet{
                 mintitle:pagetitle
                 onMlclicked: {
                     mSdview.push(Qt.resolvedUrl(gopage))
                 }                 }             }         }        }
Calculator.qml中的信号再也绑定不了,点里面的按钮也没反应。想问一下StackView中子容器中的各QML页面的信号怎么与C++类绑定,另外做这种多窗口还有其它的办法吗?
离线foruok

只看该作者 1楼 发表于: 2014-12-01
你在QML中连接就可以了。参看我博客,http://blog.csdn.net/foruok
4条评分好评度+1贡献值+1金钱+1威望+1
swbuild 好评度 +1 - 2015-05-07
swbuild 贡献值 +1 - 2015-05-07
swbuild 威望 +1 - 2015-05-07
swbuild 金钱 +1 - 2015-05-07
我的博客:http://blog.csdn.net/foruok
我的微信订阅号:程序视界
离线foruok

只看该作者 2楼 发表于: 2014-12-01
另外多个界面,也可以动态创建Item来实现,点击一个Item 时,动态创建。
我的博客:http://blog.csdn.net/foruok
我的微信订阅号:程序视界
离线lovexin109

只看该作者 3楼 发表于: 2014-12-06
回 foruok 的帖子
foruok:另外多个界面,也可以动态创建Item来实现,点击一个Item 时,动态创建。 (2014-12-01 12:55) 

谢谢
快速回复
限100 字节
 
上一个 下一个