0

因此,我尝试使用 Qt 将 QMenuBar 中的第四个菜单标题“Test”加粗(见下图)。

QMenuBar

    QMenuBar* pQMenubar = new QMenuBar();        
    pQMenubar->addMenu(new QMenu("Fichier")); //Some QMenu, not important
    pQMenubar->addMenu(new QMenu("Windows")); //Some QMenu, not important
    pQMenubar->addMenu(new QMenu("Tools"));   //Some QMenu, not important
    
    QMenu* pQMenuTest = new QMenu("Test");    // The Menu I wanna bold
    pQMenubar->addMenu(pQMenuTest);
    
    //There is some action added to each QMenu, but I do not want them bold

为此,我尝试将 StyleSheet 或字体设置为 QMenuBar 或 QMenu("test")

将字体 (setBold(true)) 或 StyleSheet(font-weighted: bold) 设置为 QMenu 不起作用,它仅将 QMenu 中包含的操作设置为粗体。

但是当我更改 QMenuBar 的 styleSheet 或 Font 时,所有 QMenu 和 QAction 都是粗体,所以我尝试过这种方式。

我试图“过滤”受样式表影响的对象:

    //Try 1
    pQMenuBar.setStyleSheet(QMenu {font-weight: bold}); //Nothing is bold

    //Try 2
    pQMenuTest.setObjectName("Test");
    pQMenuBar.setStyleSheet(QMenu#Test {font-weight: bold}); //Nothing is bold

    //Try 3
    pQMenuTest.setObjectName("Test");
    pQMenuBar.setStyleSheet(#Test {font-weight: bold}); //Nothing is bold

    //Try 4, just to check if it's works
    pQMenuTest.setObjectName("Test");
    pQMenuBar.setStyleSheet(QWidget {font-weight: bold}); //Evrything is bold

我开始怀疑 QMenuBar.addMenu(QMenu) 并没有真正将 QMenu 用于“显示”,因此按 QMenu 过滤或对象名不起作用。(我尝试使用 QAction 进行过滤,但也没有什么是粗体的)。

4

0 回答 0