使用带有标签的 QML 工具提示

mvo*_*mer 4 qt label tooltip qml

我正在使用带有 TextField的工具提示。这工作正常。

RowLayout {
    property string toolTipText

    TextField {
        hoverEnabled: true
        ToolTip.visible: tooltipText ? hovered : false
        ToolTip.text: tooltipText 
    }
}
Run Code Online (Sandbox Code Playgroud)

但是有了标签,它就无法正常工作。 hoverEnabled在标签组件中不可用。所以我试过了MouseArea

RowLayout {
    property string toolTipText

    Label {
        MouseArea { 
            anchors.fill: parent
            hoverEnabled: true
            ToolTip.visible: tooltipText ? hovered : false
            ToolTip.text: tooltipText 
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

显示 ToolTip,但不会在鼠标悬停在Label 上时显示。它实际上在进入窗口时显示。

有什么解决办法吗?

eyl*_*esc 6

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
        }
    }
}
Run Code Online (Sandbox Code Playgroud)