问题标签 [qmenu]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
1081 浏览

qt - QWidget::grabKeyboard() 和 QMenu 抓取的区别

我注意到,当 QMenu 打开时,我的键绑定停止工作( xbindkeys ),屏幕保护程序也无法启动并报告“无法抓取键盘”错误。

其他使用 QWidget::grabKeyboard() 的 QWidget 不会发生这种情况。

QMenu 是否抓取键盘,如果是,它是 QWidget::grabKeyboard() 还是较低级别的 X11 东西?如果它是一个较低级别的功能,为什么不能只使用普通的 Qt 键盘抓取。

0 投票
1 回答
1520 浏览

qt - 菜单应该如何弹出 - Qt

我正在读一本关于 Qt 的书,有一个关于如何弹出历史菜单的示例,文本说“当调用此方法时,它会弹出一个菜单,其项目对应于用户访问过的网页”,

但我真的不明白我们如何使“菜单”可见:这是 SLOT 方法:

所以我看不到如何从这个简单的功能中弹出菜单?(“当这个方法被调用时,它会弹出一个菜单”)

谢谢

0 投票
3 回答
10177 浏览

c++ - Is there a way to add a QWidget to a QMenu in QtCreator

I'm creating a text editor and I'd like to put the QComboBox in the QMenu. I didn't find any method inside the QMenu that handled such a thing. The closest is QMenu::addAction(). I was wondering of getting around this hurdle.

Thanks!

0 投票
4 回答
10377 浏览

qt4.7 - Qt Stylesheets:如何将样式应用于菜单?如何去除 QTextEdit 周围的蓝色调?

我正在尝试将菜单栏设置为渐变黑色,并且效果很好,但菜单标题除外。

这是我正在使用的样式表:

  1. 我如何也将样式应用于多个标题?
  2. 周围有QTextEdit一种我无法摆脱的蓝色调。有没有办法将其设置为黑色?

谢谢 :)

样式表不适用于菜单项

0 投票
2 回答
8560 浏览

qt - 对齐 QMenuBar 项目(在左侧添加一些,在右侧添加一些)

目前我有带有三个 QActions 的 QMenuBar,它看起来像这样:

在此处输入图像描述

但我想得到这个(让一些QActions右对齐):

在此处输入图像描述

有没有办法做到这一点?

0 投票
1 回答
1999 浏览

qt - QAction 的所有权

将 QAction* 添加到负责删除 QAction* 对象的 QMenu 时?我在 QMenu 或 QAction 的文档中找不到它。

Qt Menus 示例不会删除它创建的任何操作,因此我假设 QMenu 拥有 QAction 。那是对的吗?

0 投票
1 回答
5173 浏览

python - PyQt QMenu 下拉方向

我正在寻找一种方法来控制从 QMenu 中打开子菜单的方向。默认行为是向右打开,除非没有足够的屏幕空间,然后向左打开。

如果您有一个位于屏幕最右侧的菜单(例如:chrome 的设置扳手),如果您有多个嵌套菜单,默认行为会导致它们在从左侧打开和从右侧打开之间来回切换,这是一种令人抓狂的用户体验。

我想要的是一种告诉 QMenu 始终向左打开子菜单的方法;在 QMenu 中绝对没有直接的控制,但 Qt 通常有很多神奇的“应用程序”或“全局”设置,用于特定于平台的行为。我想知道有没有人知道!

以前在 C# 中使用 ToolStripMenu 做过这个,所以我知道一些工具包有这个能力。

0 投票
3 回答
14339 浏览

c++ - 如何将 QActions 列表添加到 QMenu 并使用单个插槽处理它们?

首先,我有一个QWidgets 列表,直到运行时我才知道它的长度。然后我创建一个QListWidget显示它们的位置,当有人点击它们时,我使用信号currentItemChanged(QListWidgetItem*, QListWidgetItem*)来捕捉它并获取点击项目的索引。

现在我想在QMenu. 我会在构建它及其操作时知道该列表QMenu,但我将无法对其进行硬编码。

如何创建动作,捕捉它们的信号并将它们连接到同一个插槽,根据菜单列表中动作的位置(索引)执行不同的操作?必须有某种方法来解决这个问题,因为其他应用程序使用它。我试图查看映射,但我无法理解如何使用它。

我试图抓住sender插槽,但无法从中获得任何有用的信息。

0 投票
2 回答
3957 浏览

qt - 将 QMenuBar 放在 QT 中的 QMainWindow 底部

有没有办法将 QMenuBar 放在屏幕底部(我的意思是,在 QMainWindow 底部)?

我正在做我的论文项目,我的主管让我在屏幕底部放置一个 QMenuBar。这可能吗?,我一直在尝试调整菜单栏的几何形状。在 Qt Designer 中,我可以移动栏的位置,但是当我运行我的项目时,菜单栏总是向上的。

提前致谢。

0 投票
4 回答
23101 浏览

qt - 如何在 Qt 中遍历菜单的操作?

我正在一个项目中工作,我需要自动打开(显示或弹出)QMenuBar 中的项目。

假设我有下一个菜单栏:

要设置一个动作(显示与该动作关联的菜单),我使用:

据我所知,我可以使用以下方法之一来获取指向 QMenuBar 元素的指针列表:

或者

当我使用QMenuBar::findChildren<QAction*>()MenuBar::actions()获得菜单栏中的菜单列表时,我的意思是,我"File, Edit, Help"从我的 QMenuBar 获得,在这种情况下 QList 的大小为 3。

当我使用时,QMenuBar::findChildren<QObject*>()我得到了一个大小为 6 的 QObject 列表,这是菜单栏中正确的项目数。但是,我尝试过强制转换为 QAction*

在所有这些情况下a都不是 NULL,但是当我尝试获取操作名称QAction::title()时,它总是会导致我出现分段错误。

我一直在搜索,我在这里发现,在获取菜单栏操作列表后,可以询问QAction::menu()(如果项目是菜单,则返回有效的 QMenu 指针)知道项目是否是 QMenu,如果是,可以重复获取该菜单的操作列表,并继续迭代。但这对我不起作用,我希望

每个元素“文件,编辑帮助”QAction::menu()返回一个有效的菜单指针,所以我可以获得每个菜单的操作列表,但这对我来说根本不起作用。