Qt MenuBar突出了主题风格的边框

时间:2015-10-16 20:37:52

标签: c++ qt motif qmenubar

我有一个QMenuBar,它有两个使用motif风格的子菜单(Qt 5.3)。遵循此方案时,QMenuBar周围会出现黑色边框(示例代码):

  1. 点击子菜单" Foo1"
  2. 点击子菜单" Bar1"
  3. 点击" Bar1"后出现边框。这似乎是一个亮点或焦点边界。使用鼠标移动窗口时边框消失,但完成移动后返回。

    menubar1上的黑色边框图片:

    menubar with offending black border

    我想知道如何在不使用样式表的情况下摆脱这个边框,因为使用样式表会清除主题样式。

    以下是示例代码:

    #include <QApplication>
    #include <QMainWindow>
    #include <QMenuBar>
    
    int main(int argc, char *argv[])
    {
        QApplication a(argc, argv);
        a.setStyle("motif");
        QMainWindow w;
    
        w.setFixedSize(700,300);
    
        QMenuBar *menubar1 = new QMenuBar(&w);
        menubar1->setFixedSize(500,30);
        menubar1->addMenu("Foo1");
        menubar1->addMenu("Bar1");
    
        QMenuBar *menubar2 = new QMenuBar(&w);
        menubar2->setFixedSize(500,30);
        menubar2->move(0,80);
        menubar2->addMenu("Foo2");
        menubar2->addMenu("Bar2");
    
        w.show();
        return a.exec();
    }
    

0 个答案:

没有答案