草庐IT

【VS Code 与 Qt6】QAction 类的一些事

QAction类表示用户命令的一种抽象,包括命令文本、图标、命令触发后要执行的代码。菜单、工具栏按钮往往存在相同的功能,将这些命令独立抽出来,放到QAction以象上,可避免编写重复的代码。比如“文件”菜单下有“保存”命令,工具栏上也会有“保存”按钮。因此,创建一个表示“保存”的QAction对象,同时添加到菜单和工具栏中,它们就能共享相同的功能。以上F话了这么多,就是为了明确QAction类的作用。在创建QAction实例时,可以通过构造函数传递命令的文本,或图标。如果在调用构造函数时不指定,那么可以用下面这些方法来“补做”:1、setText方法:设置命令文本。显示在用户界面上的文本;2、

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

首先,我有一个QWidget列表,直到运行时我才知道它的长度。然后我创建一个QListWidget我在其中显示它们,当有人单击它们时,我使用信号currentItemChanged(QListWidgetItem*,QListWidgetItem*)来捕获它并获取单击项目的索引。现在我想在QMenu中做类似的事情。当QMenu及其操作构建时,我会知道该列表,但我无法对其进行硬编码。如何创建Action,捕捉它们的信号并将它们连接到同一个插槽,根据Action在菜单列表中的位置(索引)执行不同的操作?必须有某种方法来解决这个问题,因为其他应用程序使用它。我试图查看映射,但不知道如何使用它

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

首先,我有一个QWidget列表,直到运行时我才知道它的长度。然后我创建一个QListWidget我在其中显示它们,当有人单击它们时,我使用信号currentItemChanged(QListWidgetItem*,QListWidgetItem*)来捕获它并获取单击项目的索引。现在我想在QMenu中做类似的事情。当QMenu及其操作构建时,我会知道该列表,但我无法对其进行硬编码。如何创建Action,捕捉它们的信号并将它们连接到同一个插槽,根据Action在菜单列表中的位置(索引)执行不同的操作?必须有某种方法来解决这个问题,因为其他应用程序使用它。我试图查看映射,但不知道如何使用它

c++ - 我想知道 QAction 是被鼠标左键还是右键点击

我在QMenu中有一个QAction。当QAction被triggered()时,我想知道是哪个按钮触发的。connect(YourAction,SIGNAL(triggered()),this,SLOT(actionclicked()));voidMainWindow::actionclicked(QMouseEvent*e){if(e->buttons()==Qt::RightButton)}我不能做这样的事情,因为triggered()没有这样的参数。 最佳答案 正如@mvidelgauz所注意到的,QAction是从可能触发

c++ - QAction 快捷方式并不总是有效

我在菜单项上有一个Qaction,用于删除我的一个View中的选定项。这是我创建Action的方式:deleteAct=newQAction(tr("DeleteSelected"),this);deleteAct->setShortcut(QKeySequence::Delete);connect(deleteAct,SIGNAL(triggered()),this,SLOT(deleteSelected()));我设置了一个应该触发delectAct操作的键盘快捷键(删除键)。它大部分时间都有效,但在某些时候它会停止工作......有谁知道为什么快捷方式会停止工作?注意:如果我从菜

python - PyQt - 使 QAction 可检查,即使它被禁用

我想要一个行为略有改变的QAction。我希望QAction仅在选中时发出信号,而且我希望它的复选框始终处于选中状态,即使QAction已被禁用。例如,如果将QAction设置为setEnabled(False),则不能单击QAction或选中/取消选中它。我喜欢它不能再被点击,但不喜欢我不能在QAction中切换复选框。是否可以对其进行修改以获得我正在寻找的内容?我在下面附上了一个示例文件。目标是制定一些解决方案,其中QAction设置为禁用(setEnabled(False)),但用户仍然可以选中/取消选中它。#!/usr/bin/envpython#-*-coding:utf-8

c++ - 阻止 QMenu 在其 QAction 之一被触发时关闭

我使用QMenu作为上下文菜单。这个菜单充满了QActions。其中一个QAction是可选中的,我希望能够在不关闭上下文菜单的情况下选中/取消选中它(并且必须再次重新打开它以选择我想要的选项)。我尝试断开可检查QAction发出的信号,但没有成功。有什么想法吗?谢谢。 最佳答案 将QWidgetAction和QCheckBox用于不会导致菜单关闭的“可检查操作”。QCheckBox*checkBox=newQCheckBox(menu);QWidgetAction*checkableAction=newQWidgetAction(
12