要为QMenu
的动作(QAction
)添加样式,可以使用子选择器 QMenu::item
来指定样式。在你的情况下,可以使用如下方式:
QMenu* menu = new QMenu(tree);
menu->setStyleSheet("background-color: #FFFFFF;");
QString actionStyle = "QMenu::item {"
" background-color: #F3F3F3;"
" color: #000000;"
"}"
"QMenu::item:selected {"
" background-color: #3F7AFF;"
" color: #FAFBFF;"
"}"
"QMenu::item:hover {"
" background-color: #3F7AFF;"
" color: #6192FF;"
"}";
menu->addAction("添加文件", this, &CProjectList::slotAddItemInTreeFile)->setStyleSheet(actionStyle);
menu->addAction("添加文件夹", this, &CProjectList::slotAddItemInTreeFolder)->setStyleSheet(actionStyle);
menu->addAction("删除样本", this, &CProjectList::slotRemoveTreeItem)->setStyleSheet(actionStyle);
menu->exec(QCursor::pos());
以上代码中,通过设置 actionStyle
变量定义了菜单项的样式表。然后,将每个动作(菜单项)调用 setStyleSheet()
方法并传入该样式表,即可为菜单项应用样式。
请注意,在这种情况下,由于 QAction
并没有直接支持设置样式表的方法,我们只能将样式应用到对应的动作上,并不能直接应用到整个菜单。因此,你需要为每个动作单独设置样式表。
内容由零声教学AI助手提供,问题来源于学员提问