使用QML创建新窗口

时间:2014-01-15 10:46:59

标签: qt window qml

  MouseArea {
                anchors.fill: parent
                hoverEnabled: true
                         acceptedButtons: Qt.LeftButton | Qt.RightButton
                         onEntered: Function.call(somefunc())
                         onExited: console.log("Mouse Exited");
                onClicked: {
                    Qt.quit();
                }
            }

当我的鼠标进入鼠标区域时,如何使用somefunc()函数创建一个新窗口。可能吗?
我找不到任何方法将C ++文件集成到Qt中,以便我可以使用该函数创建一个新窗口。

2 个答案:

答案 0 :(得分:1)

是的,有可能达到你想要的效果。 C ++和QML可以在某些方面协同工作,但没有一个(据我所知)涉及将C ++代码嵌入到QML代码中。 在继续之前,我建议你问自己以下几点:

  1. 为什么不用QML定义窗口本身?
  2. 为什么不在JavaScript中定义somefunc(),这是一种可以在QML文件中使用的语言。

答案 1 :(得分:0)

甚至可以从Qml或C ++创建一个新窗口,但在Qml中最简单,你可以声明包含qml元素的Component元素(如何显示弹出窗口,但窗口的功能非常有限)或者创建一个窗口元素,请阅读:

How can I create a new window from within QML?

而且:http://qt-project.org/doc/qt-4.8/qdeclarativedynamicobjects.html,也许这可以提供帮助。