QMenuBar 不使用原生样式? C++,QT设计器。 Ui

QMenuBar not using native style? c++ , QTDesigner. Ui

我有一个小Ui。

它有一个主窗口。顶部是 QMenuBar。

  1. When I run the program ( which has no error messages ) everything functions ok.

  2. However, the subitems for the Menu do not have any style when hovered or pressed.

它们只是纯文本。

QMenuBar:

Options (QMenu)
--About (QAction)
--Reset (QAction)

我认为他们会采用原生的 OS 菜单项样式。但是除了纯黑色文本之外,它们根本没有任何样式。

我已将 QAction 连接到 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 使用原生 OS 样式?

问:或者我如何设置 QAction 的样式以像正常那样包含悬停和按下状态 windows?

我正在使用 Windows 10,所以这可能对此有一些影响?

所以我想出了如何编辑我需要的样式。

使用qt中的ui编辑器,selectQMenuBar -> Qmenu对象。这是包含动作本身的对象。

在属性编辑器中将其添加到样式表中:

selection-background-color: rgb(204, 204, 204);
color: rgb(80, 80, 80);
selection-color: rgb(0, 0, 0);

这将导致子菜单项的行为与大多数程序一样,因为它们会在悬停时改变颜色或背景改变颜色。