如何使用CSS样式表更改Qt的QMenu中选定项目的右箭头图像?

How to change right-arrow image in Qt's QMenu for selected items with a CSS stylesheet?

本文关键字:项目 图像 QMenu 样式 CSS 何使用 Qt      更新时间:2023-10-16

我的应用程序中有一个Qt QMenu,由两个级别组成(子菜单的顶层,然后是包含操作的每个子菜单),我们有一个自定义的深灰色样式,其中菜单背景是灰色,文本颜色是白色,右箭头是白色。当子菜单项突出显示(鼠标悬停)时,项目背景为白色,文本为黑色,我希望向右箭头也切换到黑色图像。我正在使用CSS样式表来执行此操作。但是,我似乎找不到正确的语法来为项目选定状态设置备用右箭头图像。我的CSS看起来像这样:

QMenu
{
  background-color: rgb( 24, 24, 24 );
  color: white;
}
QMenu::item:selected
{
  background-color: white;
  color: black;
}
QMenu::right-arrow
{
  image: url(Resources/MenuRight.png);
}

我在上述代码之后尝试了以下添加(其中MenuRightSelected.pngMenuRight.png的反色图像):

QMenu::right-arrow:selected
{
  image: url(Resources/MenuRightSelected.png);
}

QMenu::item::right-arrow:selected
{
  image: url(Resources/MenuRightSelected.png);
}

这些都不会影响显示的 QMenu。有谁知道是否有可能做我所追求的事情,如果是,如何做?

可能您只需要更改css文件中项目的顺序。我曾经听说Qt从上向上解析css文件。再往上的项目会覆盖再往下的项目的行为。