zoukankan      html  css  js  c++  java
  • 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")
                }
            }
        }
  • 相关阅读:
    Java线程基础(二)
    Java线程基础(一)
    泛型集合List的详细用法
    Java中日期格式(String、Date、Calendar)的相互转换
    重写Java中包装类的方法
    Java的集合框架(第一次小结)
    node.js 调用mysql 数据库
    win10 系统解决mysql中文乱码问题
    vue-echarts图表
    文件上传的几个例子
  • 原文地址:https://www.cnblogs.com/tingtaishou/p/14816863.html
Copyright © 2011-2022 走看看