使用QML ToolTip和Label

时间:2018-05-24 08:01:27

标签: qt qml label tooltip

我正在使用带有TextField的ToolTip。这工作正常。

RowLayout {
    property string toolTipText

    TextField {
        hoverEnabled: true
        ToolTip.visible: tooltipText ? hovered : false
        ToolTip.text: tooltipText 
    }
}

但是使用Label它不会正常工作。 标签组件中不提供hoverEnabled。所以我用MouseArea

尝试了
RowLayout {
    property string toolTipText

    Label {
        MouseArea { 
            anchors.fill: parent
            hoverEnabled: true
            ToolTip.visible: tooltipText ? hovered : false
            ToolTip.text: tooltipText 
        }
    }
}

ToolTip将会显示,但不会在鼠标移到Label时显示。它实际上是在进入窗口时显示的。

有没有解决方案?

1 个答案:

答案 0 :(得分:1)

MouseArea没有ToolTip而是Label,因此您必须使用MouseArea的containsMouse属性移动它并激活它:

RowLayout {

    Label {
        text: "label"
        property string toolTipText: "message"
        ToolTip.text: toolTipText
        ToolTip.visible: toolTipText ? ma.containsMouse : false
        MouseArea {
            id: ma
            anchors.fill: parent
            hoverEnabled: true
        }
    }
}