gpt4 book ai didi

c++ - QMenuBar 不使用原生样式? C++,QT设计器。用户界面

转载 作者:太空宇宙 更新时间:2023-11-04 13:00:13 25 4
gpt4 key购买 nike

我有一个小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.

它们只是纯文本。

Q菜单栏:

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

我认为他们会为菜单项采用 native 操作系统样式。但是除了纯黑色文本之外,它们根本没有任何样式。

我已将 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 使用原生操作系统风格?

问:或者我如何设置 QAction 的样式以像普通窗口一样包含悬停和按下状态?

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

最佳答案

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

使用 qt 中的 ui 编辑器,选择 QMenuBar -> Qmenu 对象。这是包含 Action 本身的对象。

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

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

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

关于c++ - QMenuBar 不使用原生样式? C++,QT设计器。用户界面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44468736/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com