将 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
}
}
}
我正在使用带有 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
}
}
}