3

有没有办法让 plasmoid 工具提示以编程方式显示/隐藏?

我尝试通过ToolTipArea在紧凑表示上设置 a ,并尝试使用 - 它来触发它Timer- 它不起作用(常规工具提示不断显示,但仅在悬停 plasmoid 图标(又名compactRepresentation)时显示:

import QtQuick 2.0
import QtQuick.Layouts 1.1
import org.kde.plasma.plasmoid 2.0
import org.kde.plasma.core 2.0 as PlasmaCore
import org.kde.plasma.components 3.0 as PlasmaComponents
import org.kde.plasma.extras 2.0 as PlasmaExtras

Item {
    Layout.preferredWidth: 200
    Layout.preferredHeight: 300

    Plasmoid.preferredRepresentation: Plasmoid.compactRepresentation

    Plasmoid.compactRepresentation: Item
    {
        anchors.fill: parent

        MouseArea
        {
            onClicked:
            {
                 plasmoid.expanded = !plasmoid.expanded
            }
        }

        PlasmaCore.ToolTipArea
        {
            id: toolTip
            width: parent.width
            height: parent.height
            anchors.fill: parent
            mainItem: tooltipContentItem
            active: false
            interactive: true
        }

        Timer
        {
            interval: 3000
            running: true
            repeat: true
            onTriggered:
            {
                if (tooltipContentItem.active == false)
                {
                    toolTip.showToolTip()
                    toolTip.active == true
                }

                else
                {
                    toolTip.hideToolTip()
                    toolTip.active == false
                }
            }
        }
    }

    Item
    {
        id: tooltipContentItem

        implicitWidth: 300
        implicitHeight: 200

        ColumnLayout
        {
            id: mainLayout
            anchors
            {
                left: parent.left
                top: parent.top
                margins: PlasmaCore.Units.gridUnit / 2
            }

            PlasmaExtras.Heading
            {
                id: tooltipMaintext
                level: 3
                Layout.minimumWidth: Math.min(implicitWidth, preferredTextWidth)
                Layout.maximumWidth: preferredTextWidth
                elide: Text.ElideRight
                text: "Test"
            }

            PlasmaComponents.Label
            {
                id: tooltipSubtext
                Layout.minimumWidth: Math.min(implicitWidth, preferredTextWidth)
                Layout.maximumWidth: preferredTextWidth
                text: "Testing text"
                opacity: 0.6
            }
        }
    }
}

也有QQuickItem,但我不知道是否可以根据命令显示或隐藏它(这个位是从 KDE 的digitalclock plasmoid借来的:toolTipItem

import QtQuick 2.0
import QtQuick.Layouts 1.1
import org.kde.plasma.plasmoid 2.0
import org.kde.plasma.core 2.0 as PlasmaCore
import org.kde.plasma.components 3.0 as PlasmaComponents
import org.kde.plasma.extras 2.0 as PlasmaExtras

Item {
    Layout.preferredWidth: 200
    Layout.preferredHeight: 300

    Plasmoid.preferredRepresentation: Plasmoid.compactRepresentation

    Plasmoid.compactRepresentation: Item
    {
        anchors.fill: parent

        MouseArea
        {
            onClicked:
            {
                 plasmoid.expanded = !plasmoid.expanded
            }
        }
    }

    plasmoid.toolTipItem: Loader
    {
        id: toolTipLoader
        source: "Tooltip.qml" // Just holds the tooltip contents
    }
}
4

0 回答 0