我目前正在使用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()));
}
这个功能运行良好。当您在我的树形窗口小部件中选择文件或文件夹并右键单击时,将使用此上下文菜单。我的问题是,即使我选择了一个文件,我也会提出“添加文件夹”选项。您无法在文件内创建文件夹。
我想要的是当选择文件时禁用该选项,并在选择文件夹时启用它。
我可以通过获取我已重载的TreeWidgetItem类来知道它是文件还是文件夹:
谢谢