c++ - 如何使用 CSS 样式表更改 Qt 的 QMenu 中选定元素的右箭头图像?

标签 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。有谁知道是否可以做我想做的事,如果可以,怎么做?

最佳答案

可能您只需更改 css 文件中元素的顺序。曾经听说Qt是从上往下解析css文件的。进一步向上的元素会覆盖进一步向下的元素的行为。

关于c++ - 如何使用 CSS 样式表更改 Qt 的 QMenu 中选定元素的右箭头图像?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11956412/

相关文章:

c++ - 如果返回参数,是否可以复制省略?

c++ - 从 C++ 中的整数数组获取输入

javascript - 将...替换为阅读更多(自定义省略号)

c++ - 使用指针的最小位

c++ - while(1) 在构造函数中还是使用线程?

jquery - 在 JSP 中向表单添加弹出窗口

javascript - jQuery 仅在 scrollTop = 0 时悬停

c++ - 对话窗口在完成之前关闭(已接受);

c++ - 多线程opencv视频处理Qt/C++

c++ - Qt:更改 QFileInfo 对象中的图标