【问题标题】:Qt/QML: Custom menu exceeding window boundariesQt/QML:自定义菜单超出窗口边界
【发布时间】:2019-01-11 21:18:16
【问题描述】:

我想创建一个自定义的 Qt/QML 菜单,就像 Firefox 中的主菜单一样:

如您所见,如果菜单大于主窗口,则菜单可能会超出主窗口的边界。有没有办法在 Qt 中实现这种行为?我尝试使用原生的Menu QML 组件,但这只会给我一个默认的操作系统上下文菜单,其中包含非常多的自定义选项。我希望完全控制菜单的外观及其内容(即与普通 QML 组件或小部件相同的可能性)。

【问题讨论】:

  • 只需创建一个窗口,然后在其中放入您想要的任何内容?看起来很简单。
  • 不清楚你在问什么。什么是“完全控制”?什么是“可以超越界限”?请提供示例。
  • 通常,Qt 组件被其父窗口裁剪。这不适用于 Firefox 中的菜单(参见屏幕截图)。我想知道如何在 Qt 中实现这一点。通过完全控制,我的意思是我可以将任何我想要的组件放入容器中(就像我可以放入任何我想要的窗口一样)。使用原生上下文菜单时,通常仅限于菜单条目的文本,也可能是图标。

标签: qt menu window qml


【解决方案1】:

但是,我怀疑这些选项中的任何一个都足以满足您的情况,因为本机菜单支持意味着利用操作系统提供的任何内容,这可能不够灵活,无法实现图像中显示的菜单。

正如@hyde 所提到的,一种选择可能是创建一个Window 并在其中实现您的菜单。

【讨论】:

  • 哦,所以这意味着上下文菜单基本上是无框窗口?我已经想出了这种方法,但感觉不对。
猜你喜欢
  • 2014-11-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-07-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多