QT开发中文网

QAction 没有 setStyleSheet() 接口

对不起,我之前的回答有误。确实 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助手提供,问题来源于学员提问

本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
转载请注明出处:https://qt.0voice.com/?id=9976

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
游客 游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~

联系我们

在线咨询: 点击这里给我发消息

微信号:3007537140

上班时间: 10:30-22:30

关注我们
x

注册

已经有帐号?