0

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

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

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

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

4

1 回答 1

1

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

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

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

于 2015-01-17T18:45:54.530 回答