我目前正在使用 Qt 和 C++ 开发一个应用程序,例如浏览器。
我创建了一个上下文菜单以允许右键单击操作,例如删除、重命名和添加文件夹。
void MyTreeWidget::createContextMenu() {
contextMenu = new QMenu();
setContextMenuPolicy(Qt::ActionsContextMenu);
addFolderAction = new QAction("Add Folder", contextMenu);
addAction(addFolderAction);
connect(addFolderAction, SIGNAL(triggered()),this,SLOT(onAddFolderActionTree()));
deleteAction = new QAction("Delete", contextMenu);
addAction(deleteAction);
connect(deleteAction, SIGNAL(triggered()),this,SLOT(onDeleteAction()));
RenameAction = new QAction("Rename", contextMenu);
addAction(RenameAction);
connect(RenameAction, SIGNAL(triggered()),this,SLOT(onRenameAction()));
}
这工作正常。当您在我的 treewidget 中选择文件或文件夹并右键单击时,将使用此上下文菜单。我的问题是,即使我选择了一个文件,我也建议使用“添加文件夹”选项。您不能在文件中创建文件夹。
我想要的是在选择文件时禁用该选项,并在选择文件夹时启用它。
通过获取我重载的 TreeWidgetItem 类,我可以知道它是文件还是文件夹:
谢谢
最佳答案
您可以禁用 QAction。在这种情况下,“添加文件夹”菜单项将被禁用:
addFolderAction->setEnabled(false);
关于c++ - qt/c++ 上下文菜单 - 禁用一个项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30058543/