【问题标题】:qml: achieve a chrome-like menuqml:实现类似chrome的菜单
【发布时间】:2015-01-17 15:05:39
【问题描述】:

我想用 QML 实现一个带有单个菜单项的菜单,就像 chrome 那样。它有这个带有三个水平条的按钮,当你点击它时,你会得到一个菜单。最新版本的 Firefox 也遵循相同的原则。它允许不要在应用程序的 GUI 中浪费太多的水平空间,取消占用整个窗口宽度的常用菜单。

我没有设法用 QML 完全重现这个 GUI。从我所见,您可以使用 QML ApplicationWindow,然后使用 MenuBar,但它会占用窗口的整个宽度......或者有一个切换按钮来触发菜单,然后使用独立的 @987654323 @ 和它的popup() 方法,但是然后它直接在光标下弹出,而不是在打开菜单的按钮下,看起来不太好。这真的更滥用上下文菜单的机制。

我可以在我的窗口中制作一个自定义小部件的假菜单,但它无法扩展到我的应用程序窗口之外。这种行为几乎是必需的,因为我将把这个按钮放在窗口的最右侧,就像 chrome 一样。

是否有可能在纯 QML(非 C++)中完全实现该行为?

【问题讨论】:

    标签: qt qml qt-quick qtquickcontrols


    【解决方案1】:

    我现在所做的是我提到的最后一个选项:窗口中的假菜单。它使用画布进行绘制,这使我能够将其设置为从菜单到菜单切换按钮的小箭头,就像 firefox 所做的那样。

    我说的缺点是菜单不能跳出窗口,再加上一切都非常手动(菜单项的鼠标悬停效果......),所以我仍然对其他解决方案感兴趣。

    编辑:好的,一段时间后我意识到我的方法的一大优点:我可以在菜单中放置自定义小部件,而不仅仅是标签。所以我认为现在这绝对是正确的做法。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-05-14
      相关资源
      最近更新 更多