QT:为QMenu对象设置样式表

时间:2015-07-25 12:47:49

标签: qt

为QMenu对象应用样式的正确方法是什么?

我正在尝试这个:

QMenu contextMenu(tr("Context menu"), this);
contextMenu.addAction(new QAction(tr("Hello"), this));
contextMenu.setStyleSheet("*:hover { color:#FFF; } *:!hover { color:#aaa; }");

我正在尝试为鼠标悬停在菜单选项上以及当鼠标未超出选项时设置不同的文本颜色。但它不起作用。

1 个答案:

答案 0 :(得分:5)

  1. 如果QMenu样式使用QMenu::item:selected

  2. 这是一个例子

     QMenu::item{
     background-color: rgb(0, 170, 0);
     color: rgb(255, 255, 255);
     }
    
     QMenu::item:selected{
     background-color: rgb(0, 85, 127);
     color: rgb(255, 255, 255);
     } 
    
  3. 在你的情况下

      QString  menuStyle(
               "QMenu::item{"
               "background-color: rgb(0, 170, 0);"
               "color: rgb(255, 255, 255);"
               "}"
               "QMenu::item:selected{"
               "background-color: rgb(0, 85, 127);"
               "color: rgb(255, 255, 255);"
               "}"
            );
    
      this->setStyleSheet(menuStyle);
    
  4. 有关更多选项,请参阅Qt Style Sheets example