首页 > 解决方案 > QT:如何在 QMenuBar 的项目鼠标悬停时触发“粗体”

问题描述

我正在使用 Qt6 创建一个跨平台的 GUI 应用程序。我正在设计器模式下使用自动生成的 QMenuBar 对象。我想将 QMenuBar 项目(文件、编辑、帮助..)更改为粗体和红色。

我在 MainWindow 对象的 StyleSheet 编辑器中使用以下代码:

QMenuBar::item:selected {

    font:bold;
    color:red;

}

该代码可以很好地更改文本的颜色,但它没有按照我的意愿将字体设置为“粗体”。此外,尝试更改字体大小也不起作用。

我错过了什么?

先感谢您!!

标签: c++windowsqtqt5qt6

解决方案


QMenubar没有font,需要font单独给QAction。我认为这将解决问题

 QMenu *fileMenu ;
 QAction *newAct = new QAction(tr("&New"), this);

 QFont f = newAct->font();
 f.setBold(true);
 newAct->setFont(f);


 fileMenu = menuBar()->addMenu(tr("&File"));
 fileMenu->addAction(newAct);

在此处输入图像描述

但如果你想要一个活跃的QAction,那么你需要

setStyleSheet("QMenu::item:selected {font: bold;}");

推荐阅读