将 QML 工具提示与标签一起使用

Use QML ToolTip with Label

我正在使用带有 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 上时不会显示。它实际上在输入 Window.

时显示

有解决办法吗?

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
        }
    }
}