Qt QMenu QAction 设置悬浮态样式
时间: 2024-05-12 19:12:58 浏览: 630
要设置QMenu和QAction的悬浮态样式,可以使用QSS(Qt Style Sheets)。
首先,我们需要为QAction设置一个自定义的QSS样式。例如:
```cpp
QAction:hover {
background-color: red;
color: white;
}
```
这会在鼠标悬浮在QAction上时将其背景色设置为红色,文本颜色设置为白色。
接下来,我们需要将这个样式应用到QMenu中的所有QAction上。这可以通过在QMenu的QSS样式中使用`QMenu::item`选择器来实现:
```cpp
QMenu::item:hover {
background-color: red;
color: white;
}
```
这样,当鼠标悬浮在QMenu中的任何QAction上时,都会应用上面定义的样式。
完整的示例代码如下:
```cpp
QMenu *menu = new QMenu(this);
QAction *action1 = new QAction("Action 1", this);
QAction *action2 = new QAction("Action 2", this);
menu->addAction(action1);
menu->addAction(action2);
// 设置QAction的悬浮态样式
action1->setStyleSheet("QAction:hover { background-color: red; color: white; }");
action2->setStyleSheet("QAction:hover { background-color: red; color: white; }");
// 设置QMenu的悬浮态样式
menu->setStyleSheet("QMenu::item:hover { background-color: red; color: white; }");
// 将QMenu显示在某个位置
menu->exec(QCursor::pos());
```
注意,QSS样式中的属性和值可以根据需要进行修改。
阅读全文