• QML 解决button中添加了MouseArea,点击事件就不响应了的问题


    ToolBar {
            RowLayout {
                anchors.fill: parent
                ToolButton {
                    id: toolbutton
                    text: qsTr("")
                    onClicked: console.log("<")
                }
                Label {
                    text: "Title"
                    elide: Label.ElideRight
                    horizontalAlignment: Qt.AlignHCenter
                    verticalAlignment: Qt.AlignVCenter
                    Layout.fillWidth: true
                }
                ToolButton {
                    text: qsTr("")
                    onClicked: console.log(":")
                }
                MouseArea {   //放布局外无效
                    anchors.fill: parent   //充满整个布局,导致覆盖了按钮自身的点击事件,点击按钮无效
                    hoverEnabled: true
                    onEntered: {
                        console.log("enter")
                    }
                    onExited: {
                        console.log("exit")
                    }
                }
            }
        }

    修改后:

    ToolBar {
            RowLayout {
                anchors.fill: parent
                ToolButton {
                    id: toolbutton
                    text: qsTr("")
                    onClicked: console.log("<")
                }
                Label {
                    text: "Title"
                    elide: Label.ElideRight
                    horizontalAlignment: Qt.AlignHCenter
                    verticalAlignment: Qt.AlignVCenter
                    Layout.fillWidth: true
                }
                ToolButton {
                    text: qsTr("")
                    onClicked: console.log(":")
                }
                MouseArea {   //放布局外无效
                    anchors.fill: toolbutton   //充满左边的工具按钮,成为了它的专属按钮事件
                    hoverEnabled: true
                    onEntered: {
                        console.log("enter")
                    }
                    onExited: {
                        console.log("exit")
                    }
                    onClicked: {
                console.log(
    "<") //点击事件有效
             } } } }

    其他:

    ToolBar {
            RowLayout {
                anchors.fill: parent
                ToolButton {
                    id: toolbutton
                    text: qsTr("")
                    onClicked:
                        console.log("<")
                }
                Label {
                    text: "Title"
                    elide: Label.ElideRight
                    horizontalAlignment: Qt.AlignHCenter
                    verticalAlignment: Qt.AlignVCenter
                    Layout.fillWidth: true
                }
                ToolButton {
                    id: toolbutton2
                    text: qsTr("")
                    onClicked:
                        console.log(":")
                }
                MouseArea {   //放布局外无效
                    anchors.fill: toolbutton   //事件无效
                    hoverEnabled: true
                    onEntered: {
                        console.log("enter toolbutton")
                    }
                    onExited: {
                        console.log("exit toolbutton")
                    }
                    onClicked:
                        console.log("< toolbutton")
                }
                MouseArea {   //放布局外无效
                    anchors.fill: toolbutton2   //事件无效
                    hoverEnabled: true
                    onEntered: {
                        console.log("enter toolbutton2")
                    }
                    onExited: {
                        console.log("exit toolbutton2")
                    }
                    onClicked:
                        console.log("< toolbutton2")
                }
                MouseArea {   //放布局外无效
                    anchors.fill: parent   //事件有效
                    hoverEnabled: true
                    onEntered: {
                        console.log("enter")
                    }
                    onExited: {
                        console.log("exit")
                    }
                    onClicked:
                        console.log("<")
                }
            }
        }
    ToolBar {
            RowLayout {
                anchors.fill: parent
                ToolButton {
                    id: toolbutton
                    text: qsTr("")
                    onClicked:
                        console.log("<")
                }
                Label {
                    text: "Title"
                    elide: Label.ElideRight
                    horizontalAlignment: Qt.AlignHCenter
                    verticalAlignment: Qt.AlignVCenter
                    Layout.fillWidth: true
                }
                ToolButton {
                    id: toolbutton2
                    text: qsTr("")
                    onClicked:
                        console.log(":")
                }
                MouseArea {   //放布局外无效
                    anchors.fill: toolbutton   //事件无效
                    hoverEnabled: true
                    onEntered: {
                        console.log("enter toolbutton")
                    }
                    onExited: {
                        console.log("exit toolbutton")
                    }
                    onClicked:
                        console.log("< toolbutton")
                }
                MouseArea {   //放布局外无效
                    anchors.fill: parent   //事件有效
                    hoverEnabled: true
                    onEntered: {
                        console.log("enter")
                    }
                    onExited: {
                        console.log("exit")
                    }
                    onClicked:
                        console.log("<")
                }
                MouseArea {   //放布局外无效
                    anchors.fill: toolbutton2   //事件有效
                    hoverEnabled: true
                    onEntered: {
                        console.log("enter toolbutton2")
                    }
                    onExited: {
                        console.log("exit toolbutton2")
                    }
                    onClicked:
                        console.log("< toolbutton2")
                }
            }
        }
  • 相关阅读:
    SQL SERVER 实现多个数据库之间表的联系,利用临时表枚举表中行数据
    [CCF CSP]201909-2 小明种苹果(续)
    Anaconda 安装 Python 库(MySQLdb)
    [CCF CSP]201903-4 消息传递接口
    [CCF CSP]201609-4 交通规划
    2019年12月CSP考试第三题化学方程式解法
    Leetcode.94.二叉树的中序遍历
    GENIA命名实体数据集解析代码
    git添加新用户
    C#语言 十大经典排序算法动画与解析!(动态演示+代码)(java改写成C# )
  • 原文地址:https://www.cnblogs.com/tingtaishou/p/14816863.html
Copyright © 2020-2023  润新知