QAction *javaAction = new QAction("javaAction", this);
QAction *cppAction = new QAction("CcppAction", this);
QAction *phpAction = new QAction("phpAction", this);
QAction *jsAction = new QAction("jsAction", this);
QAction *javaScript = new QAction("javaScript", this);
QMenu *childMenu = new QMenu();
childMenu->setStyleSheet("QMenu {background-color:#FFFFFF;}QMenu::item{ padding:11px 32px;color:#666666;font-size:12px;}");
//子菜单的 子项
QAction *delfile = new QAction(childMenu);
delfile->setText("delfile");
QAction *delfile2 = new QAction(childMenu);
delfile2->setText("delfile2");
childMenu->addAction(delfile);
childMenu->addAction(delfile2);
// 设置 Action 为可选
javaAction->setCheckable(true);
cppAction->setCheckable(true);
phpAction->setCheckable(true);
jsAction->setCheckable(true);
//javaScript->setCheckable(true);
// 需要单选的 Action 添加到 Action Group
QActionGroup *actionGroup = new QActionGroup(this);
actionGroup->addAction(javaAction);
actionGroup->addAction(cppAction);
actionGroup->addAction(phpAction);
actionGroup->addAction(jsAction);
//actionGroup->addAction(javaScript);
//互斥信号关闭 实现可以多选
actionGroup->setExclusive(false);
// 右键时显示菜单
this->setContextMenuPolicy(Qt::CustomContextMenu);
connect(this, &QWidget::customContextMenuRequested, [=](const QPoint &pos) {
QMenu *menu =new QMenu(this);
menu->setStyleSheet("QMenu {background-color:#FFFFFF;}QMenu::item{padding:11px 20px;color:#666666;font-size:12px;}QMenu::indicator::checked{image:url(D:/log.png);}");
menu->addAction(javaAction);
menu->addAction(cppAction);
menu->addAction(phpAction);
javaAction->setMenu(childMenu);
menu->addMenu(childMenu);
//分隔符
menu->addSeparator();
menu->addAction(jsAction);
menu->addAction(javaScript);
menu->exec(mapToGlobal(pos));
});
QMenu实现多选效果
最新推荐文章于 2024-04-16 10:50:39 发布