QML无法在菜单中创建子菜单

时间:2017-10-18 14:25:04

标签: qt qml qtquick2 qtquickcontrols2

我正在尝试创建一个菜单

import QtQuick 2.0
import QtQuick.Controls 2.2

...

Menu {
      id: menu
      title: "mainMenu"
      MenuItem {
         text: "menuItem1"
      }
      MenuItem {
         text: "menuItem2"
      }
      Menu {
          title: "contextMenu"
            MenuItem {
               text: "item1"
            }
            MenuItem {
               text: "item2"
            }
      }
} 

但是当我尝试menu.open()时,没有contextMenu 请在下面找到截图。

https://i.stack.imgur.com/462NN.png

我该如何解决这个问题?

3 个答案:

答案 0 :(得分:2)

答案 1 :(得分:0)

也许您打算使用支持这些子菜单的QtQuick.Controls 1.x

QtQuick.Controls 2.2中 - 您使用的版本 - Menu继承自Popup,因此行为类似 - 这意味着,默认情况下它们已关闭,您需要设置它们{{ 1}}或visible他们。

open()另一方面是预先配置的MenuItem,用于在点击时关闭AbstractButton。如果您想使用Popup - 样式QtQuick.Controls 2.x,您可以定义自己的子类型Menu,这是一个按钮,不会关闭父SubMenu但会打开根据需要选择第二个菜单,或者在点击时插入右Popup个(手风琴式)。

正确的实施取决于您的要求,但不应过于具有挑战性。如果您需要更多帮助,请随时询问。

答案 2 :(得分:0)

也许您可以使用Button而不是MenuItem,并自己调整Button的背景,将它们包裹起来

=TEXTJOIN(",",TRUE,IF($A$2:$A$7 = D2,$B$2:$B$7,""))