• 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")
                }
            }
        }
  • 相关阅读:
    IPv6基础介绍
    SNMP(Simple Network Mnagement Protocol)——简单网络管理协议详解
    GRE(Generic Routing Encapsulation)——通用路由封装协议详解
    NAT(Network Address Translation)网络地址转换详解
    PPPoE(Point to Point Protocol over Ethernet)——以太网上的点对点协议详解
    链路聚合详解——Link Aggregation
    MongoDB快速copy笔记
    MongoDB导入导出和踩过的坑
    Linux离线安装RabbitMQ
    VSCode 开发、运行和调试
  • 原文地址:https://www.cnblogs.com/tingtaishou/p/14816863.html
Copyright © 2020-2023  润新知