Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Qt QML:如何隐藏子菜单?_Qt_Qml_Qt5_Qtquick2 - Fatal编程技术网

Qt QML:如何隐藏子菜单?

Qt QML:如何隐藏子菜单?,qt,qml,qt5,qtquick2,Qt,Qml,Qt5,Qtquick2,我有一些菜单,这个菜单包含子菜单。在某些情况下,此子菜单应可见。在其他情况下,此子菜单应不可见。如何做到这一点 我尝试使用visible属性,但它不起作用。子菜单始终可见。在下面的代码示例中,若单击鼠标左键,子菜单应可见,若单击鼠标右键,子菜单应不可见。但在这两种情况下都是可见的 import QtQuick 2.13 import QtQuick.Window 2.13 import QtQuick.Controls 2.13 Window { visible: true w

我有一些菜单,这个菜单包含子菜单。在某些情况下,此子菜单应可见。在其他情况下,此子菜单应不可见。如何做到这一点

我尝试使用
visible
属性,但它不起作用。子菜单始终可见。在下面的代码示例中,若单击鼠标左键,子菜单应可见,若单击鼠标右键,子菜单应不可见。但在这两种情况下都是可见的

import QtQuick 2.13
import QtQuick.Window 2.13
import QtQuick.Controls 2.13

Window {
    visible: true
    width: 640
    height: 480
    property bool visibleSubMenu : false

    Menu {
        id: contextMenu
        MenuItem {
            text: "Menu item"
        }
        Menu {
            title: "Sub menu"
            visible: visibleSubMenu
            MenuItem {
                text: "Sub menu item"
            }
        }
    }

    MouseArea {
        anchors.fill: parent
        acceptedButtons: Qt.LeftButton | Qt.RightButton
        onClicked: {
            if (mouse.button === Qt.RightButton)
                visibleSubMenu = false;
            else 
                visibleSubMenu = true;
            console.log(visibleSubMenu)
            contextMenu.popup()
        }
    }
}
菜单(QQuickMenuItem)是保存信息的元素,但它不是可视元素,可视元素是其父元素,是MenuItem(QQuickMenuItem),因此必须隐藏父元素:

property bool visibleSubMenu : true
onVisibleSubMenuChanged: sub_menu.parent.visible = visibleSubMenu

Menu {
    id: contextMenu
    MenuItem {
        text: "Menu item"
    }
    Menu {
        id: sub_menu
        title: "Sub menu"
        MenuItem {
            text: "Sub menu item"
        }
    }
}
属性布尔可见子菜单:true
OnVisibleSubmenu更改:sub_menu.parent.visible=visibleSubMenu
菜单{
id:上下文菜单
梅努伊特姆{
文本:“菜单项”
}
菜单{
id:子菜单
标题:“子菜单”
梅努伊特姆{
文本:“子菜单项”
}
}
}
菜单(QQuickMenu)是一个保存信息的元素,但它不是一个可视元素,可视元素是它的父菜单项(QQuickMenuItem),因此必须隐藏父菜单项:

property bool visibleSubMenu : true
onVisibleSubMenuChanged: sub_menu.parent.visible = visibleSubMenu

Menu {
    id: contextMenu
    MenuItem {
        text: "Menu item"
    }
    Menu {
        id: sub_menu
        title: "Sub menu"
        MenuItem {
            text: "Sub menu item"
        }
    }
}
属性布尔可见子菜单:true
OnVisibleSubmenu更改:sub_menu.parent.visible=visibleSubMenu
菜单{
id:上下文菜单
梅努伊特姆{
文本:“菜单项”
}
菜单{
id:子菜单
标题:“子菜单”
梅努伊特姆{
文本:“子菜单项”
}
}

}
菜单项/菜单的父/子关系是否记录在任何地方?具体来说,菜单不是视觉元素,但它的父项(菜单项)是需要修改的视觉元素?菜单项/菜单的父项/子项关系是否记录在任何地方?具体来说,菜单不是视觉元素,但它的父项(菜单项)是需要修改的视觉元素?