QML:鼠标悬停不起作用

时间:2014-09-27 10:17:58

标签: qt qml qtquick2

我有这个QML代码并且它非常直接但我的问题是onEntered和onExited根本不起作用。我没有看到代码有任何问题,我觉得这是一个QtQuick错误!

import QtQuick 2.2

Rectangle {
    width: 480
    height: 320
    Rectangle {
        x: 30; y: 30
        width: 300; height: 240
        color: "lightsteelblue"

        MouseArea {
            anchors.fill: parent

            hoverEnabled: true

            onEntered: {
                console.log('mouse over ya kbeer');
            }

            onExited: {
                console.log('mouse out ya kbeer');
            }
        }
    }
}

我将此作为qml组件用于其他地方。我不确定,但也许是因为我必须将它们嵌入到另一个Qt Quick项目中,鼠标事件无法到达此项目,因为它已被父母缓存,我不确定!

非常感谢任何建议和帮助!

2 个答案:

答案 0 :(得分:1)

资源内置于您的可执行文件中。如果要更改它们,则需要重建exe。

您可以尝试按QML添加新的Add new - Qt - QML file文件:在此处写下您的代码(使用Qt Quick),然后通过QQuickView将其加载到view->setSource(QUrl::fromLocalFile("fullpath.qml"));当您完成app,将此文件写入资源并使用资源路径。

答案 1 :(得分:0)

我发现问题不在代码或qml上,而是在QCreator本身,当我更新我的qml代码,因为它在资源中,当我点击运行时它没有采取最新的更新。现在我重建之后它的工作正常。但有谁知道为什么会这样!