C++ QMenuBar不使用本机样式?c++,设计师。用户界面
我有一个小用户界面 它有一个主窗口。顶部是QMenuBarC++ QMenuBar不使用本机样式?c++,设计师。用户界面,c++,qt,menu,qt-designer,qstylesheet,C++,Qt,Menu,Qt Designer,Qstylesheet,我有一个小用户界面 它有一个主窗口。顶部是QMenuBar 当我运行程序(没有错误消息)时,一切正常 但是,当鼠标悬停或按下时,菜单的子项没有任何样式 它们只是纯文本 QMenuBar: 选项(QMenu) --关于(QAction) --重置(QAction) 我认为他们会采用菜单项的本机操作系统样式。但除了纯黑色文本之外,它们根本没有任何风格 我已将QActions连接到插槽: QAction::connect(ui->actionAbout, SIGNAL(hovered()), t
--关于(QAction)
--重置(QAction) 我认为他们会采用菜单项的本机操作系统样式。但除了纯黑色文本之外,它们根本没有任何风格 我已将QActions连接到插槽:
QAction::connect(ui->actionAbout, SIGNAL(hovered()), this, SLOT(changeAbout()));
然后使用该插槽,我尝试通过以下方式更新样式:
void MainWindow::changeAbout(){
ui->menuBarA->setStyleSheet("background-color: rgb(200,0,0);}");
}
当然,这只是整个菜单的样式。但它显示QAction是连接在一起的
问:如何使QMenuBar使用本机操作系统风格
问:或者我如何设置QActions的样式,使其像普通窗口一样包含悬停和按下状态
我使用的是Windows10,所以这可能会对这个有一些影响吗 所以我想出了如何编辑我需要的样式 使用qt中的ui编辑器,选择QMenuBar->Qmenu对象。这是包含他们自己的动作的对象 在属性编辑器中,将以下内容添加到样式表:
selection-background-color: rgb(204, 204, 204);
color: rgb(80, 80, 80);
selection-color: rgb(0, 0, 0);
这将导致子菜单项的行为与大多数程序类似,因为它们在悬停时会改变颜色或其背景会改变颜色 所以我想出了如何编辑我需要的样式 使用qt中的ui编辑器,选择QMenuBar->Qmenu对象。这是包含他们自己的动作的对象 在属性编辑器中,将以下内容添加到样式表:
selection-background-color: rgb(204, 204, 204);
color: rgb(80, 80, 80);
selection-color: rgb(0, 0, 0);
这将导致子菜单项的行为与大多数程序类似,因为它们在悬停时会改变颜色或其背景会改变颜色