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

时间:2012-08-14 16:07:59

标签: c++ css qt user-interface qmenu

我的应用程序中有一个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。有谁知道我是否有可能做我想要的事情,如果是的话,怎么做?

1 个答案:

答案 0 :(得分:1)

可能您只需要更改css文件中项目的顺序。我曾经听说过Qt向上解析css文件。物品会进一步覆盖物品的行为。