我有一个小Ui。
它有一个MainWindow。顶部是QMenuBar。
当我运行程序(没有错误消息)时,一切正常。
- 醇>
但是,菜单的子项在悬停或按下时没有任何样式。
它们只是纯文本。
QMenuBar:
选项(QMenu)
- 关于(QAction)
- 重置(QAction)
我认为他们将采用菜单项的本机操作系统样式。但除了纯黑色文字之外,它们完全没有风格。
我已将QActions连接到SLOT:
QAction::connect(ui->actionAbout, SIGNAL(hovered()), this, SLOT(changeAbout()));
然后使用该SLOT我尝试通过以下方式更新样式:
void MainWindow::changeAbout(){
ui->menuBarA->setStyleSheet("background-color: rgb(200,0,0);}");
}
当然这只是整个菜单的样式。但它显示QAction已连接。
问:如何让QMenuBar使用本机操作系统风格? 问:或者我如何设置QActions的样式以包括像普通窗口那样的悬停和按下状态?我使用的是Windows 10,所以可能会对此产生一些影响?
答案 0 :(得分:0)
所以我想出了如何编辑我需要的风格。
使用qt中的ui编辑器,选择QMenuBar - > Qmenu对象。这是包含Actions自身的对象。
在属性编辑器中将其添加到样式表中:
selection-background-color: rgb(204, 204, 204);
color: rgb(80, 80, 80);
selection-color: rgb(0, 0, 0);
这将导致子菜单项的行为与大多数程序一样,因为它们会在悬停时更改颜色或背景颜色变化。