- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我有一个 QMenu 和几个带有复选框的 QWidgetActions,当我尝试单击 QMenu 的任何区域时,菜单会关闭。我想阻止这种情况。
这是我执行操作和菜单的方式。
QWidgetAction* action = new QWidgetAction(menu);
action->setCheckable(checkable);
action->setData(data);
QWidget *containerWidget = new QWidget(menu);
QHBoxLayout *hbox = new QHBoxLayout(containerWidget);
QCheckBox *checkBox = new QCheckBox(menu);
checkBox->setText(title);
QObject::connect(checkBox, &QCheckBox::toggled, action, &QAction::trigger);
hbox->addWidget(checkBox);
hbox->addWidget(widget);
QObject::connect(action, &QAction::toggled, [this]() { OnPoiFilterCheckBox(); });
containerWidget->setLayout(hbox);
action->setDefaultWidget(containerWidget);
action->setData(data);
menu->addAction(action);
最佳答案
如图所示使用信号拦截器:
class filter_menu : public QMenu
{
Q_OBJECT
public:
filter_menu(QWidget *parent = 0) : QMenu(parent) {}
virtual void mouseReleaseEvent(QMouseEvent *e)
{
QAction *action = activeAction();
if (action && action->isEnabled()) {
QSignalBlocker blocker(action);
action->setEnabled(false);
QMenu::mouseReleaseEvent(e);
action->setEnabled(true);
}
else
QMenu::mouseReleaseEvent(e);
}
};
关于c++ - 防止 QMenu 在其 QAction 之一未被触发时关闭,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41564707/
当我尝试返回值时,我在 smtdplugin 实现文件中遇到了这个错误。好的,我知道我正在创建一个指向 QAction 的指针,当我尝试返回它时,我不能这样做,因为我的方法正在等待对对象的引用。但我不
我刚刚安装了 Mac OS X 10.8.3 和 Qt Creator 3、XCode 和 XCode 命令行工具。我正在尝试编译一个在另一台计算机上运行的项目,但每次我去“全部构建”时,我都会得到
将 QAction* 添加到 QMenu 时,谁负责删除 QAction* 对象?我在 QMenu 或 QAction 的文档中找不到提到的内容。 void MyClass::contextMenuE
我正在开发一个使用语音来模拟某些操作的应用程序:拖放、选择项目、单击按钮等。现在我有一个需要模拟单击或触发的菜单。 for linktype in globals.linkTypes.keys():
我在 QGraphicsView 子类中创建了 QAction 的实例,并将它连接到我在同一个类中的插槽。 QAction *action = new QAction(tr("New"), thi
我正在运行 osx mountain lion (10.8.3),当我运行下面链接中的代码时,我有一个只有一个操作的菜单... https://gist.github.com/Supm4n/8c705
我正在尝试使用 Qt 制作 IHM,我首先制作了一个基本菜单(文件、编辑...)。到目前为止,我的菜单包含"file",然后显示“新建项目、打开项目、退出”。看起来不错,但我的问题是我似乎无法触发这些
我使用 Qt Designer 创建了一个工具,其中有 3 个 QLineEdits,适用于 translateX、translateY 和 translateZ。对于每个 QLineEdit,我创建
我制作了一个带有 QAction 的菜单栏,它被设置为可检查 self.display_features_action = QtGui.QAction("Show Features", parent)
我想在点击动态创建的QAction时执行带参数的插槽,但是在QMenu中创建QAction时无法添加我的变量,默认的triggered()插槽无法传递。 更清楚地说,我想实现这样的事情: connec
我在菜单项上有一个 Qaction,用于删除我的一个 View 中的选定项。这是我创建 Action 的方式: deleteAct = new QAction( tr("Delete Selected
我在 Visual Studio 中使用 Qt。我想在我的应用程序的 menuBar 中添加 Icons。这是我到目前为止所拥有的: QToolBar *View3DToolBar; QAction
我在 Qt 中创建了一个上下文菜单,我需要菜单中的项目以选中/未选中的方式工作,以便每次点击相应项目时切换。如何将此功能添加到 QAction 中,如下所示? 最佳答案 这是手册中的相关部分。 che
我正在开发GIS软件QGIS的插件。我有一个QAction图标,选中后,只要切换其可见性,就会将组中的图层连接到函数。然后,当未选中它时,它应该断开这些功能,但我收到一个错误: Traceback (
在我的项目中,我显示了一个带有多个 QAction 对象的 QMenu。我希望 QAction 图标在用户将鼠标悬停在其上时发生变化。 这是我当前的代码: QPixmap icons(":/icons
我有一个工具栏或者有几个 QAction。我想在选择 QAction 时更改它的颜色,以便用户可以看到所选的操作。 问题是 QAction 不是 QWidget,所以我们不能使用样式表。有没有办法解决
我有一个 QActions 列表,一些被添加到顶级菜单,一些被添加到顶级子菜单。 有没有办法知道每个 Action 的父菜单名称? QAction *act; 我正在尝试 act->parentWid
Qt 中的大多数类都有默认构造函数。许多类采用 QObject* 或 QWidget* 作为构造函数参数,默认值为 nullptr。 QAction 类也有这样一个以QObject* 为参数的构造函数
我需要使用 qt、c++、qtest(在 eclipse 中)自动化 gui 测试我有一个动态创建的菜单,其中包含动态创建的 QAction,我需要从中测试一个“新选项卡”QAction(在菜单内),
现有代码在 QToolbar 中实现了一些 QAction,如图所示。目的是让选中的Qaction的图标闪烁。 因此,根据 Wizard_Step - 一个类成员 - 每次调用此计时器处理程序时,专用
我是一名优秀的程序员,十分优秀!