对不起,我之前的回答有误。确实 QAction 没有提供 setStyleSheet() 方法来设置样式。
要为 QMenu 的菜单项设置样式,你可以使用自定义的样式表和伪状态选择器来实现。在你的示例代码中,鼠标滑过时样式不生效可能是由于伪状态选择器不正确导致的。
以下是一个修正后的示例代码:
QString styleSheet =
"QMenu {"
"color: #2C2C2C;" // 默认字体颜色
"}"
"QMenu::item:selected {"
"color: #FFFFFF;" // 鼠标左键点击时的字体颜色
"background-color: #3F7AFF;" // 鼠标左键点击时的背景颜色
"}"
"QMenu::item:!selected:hover {"
"color: #4780FF;" // 鼠标滑过时的字体颜色
"background-color: #FFFFFF;" // 鼠标滑过时的背景颜色
"}";
通过将 !selected 伪状态选择器添加到 QMenu::item:hover
规则中,确保只有在非选中状态下鼠标悬停时才应用相应样式。
然后,你可以将这个样式表应用到 QMenu 上:
menu->setStyleSheet(styleSheet);
这样就能够正确应用鼠标滑过时的样式了。希望对你有所帮助!
内容由零声教学AI助手提供,问题来源于学员提问