在你的代码中,样式设置是通过setStyleSheet()
方法来实现的。根据你提供的代码,可以看到你为QMenu和其子项设置了不同状态下的样式。
然而,对于QMenu中的Action来说,setStyleSheet()
方法并不能直接应用于它们。要为QMenu中的Action设置样式,你需要使用QSS(Qt Style Sheets)语法,并将样式应用于Action所在的QMenu上。
以下是一个示例代码,展示如何使用QSS为QMenu中的Action设置样式:
// 创建QMenu
QMenu* menu = new QMenu(tree);
// 设置默认样式
QString defaultStyle = "color: #2C2C2C;"; // 默认字体颜色
// 设置鼠标滑过时的样式
QString hoverStyle = "color: #4780FF;";
QString hoverSelector = "QMenu::item:hover { " + hoverStyle + " }";
// 设置鼠标点击时的样式
QString pressedStyle = "color: #FFFFFF; background-color: #3F7AFF;";
QString pressedSelector = "QMenu::item:selected { " + pressedStyle + " }";
// 应用样式到QMenu
menu->setStyleSheet(defaultStyle + hoverSelector + pressedSelector);
// 创建并添加Action到菜单中
menu->addAction("添加样品", this, &CProjectList::slotAddItemInTreeSample);
请确保在创建并显示菜单之前应用这些样式,并且遵循正确的选择器语法。
如果仍然无法生效,请检查是否有其他地方的样式设置覆盖了这些样式。
内容由零声教学AI助手提供,问题来源于学员提问