Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/145.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ QMenuBar不使用本机样式?c++,设计师。用户界面_C++_Qt_Menu_Qt Designer_Qstylesheet - Fatal编程技术网

C++ QMenuBar不使用本机样式?c++,设计师。用户界面

C++ 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

我有一个小用户界面

它有一个主窗口。顶部是QMenuBar

  • 当我运行程序(没有错误消息)时,一切正常

  • 但是,当鼠标悬停或按下时,菜单的子项没有任何样式

  • 它们只是纯文本

    QMenuBar:

    选项(QMenu)
    --关于(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);
    
    这将导致子菜单项的行为与大多数程序类似,因为它们在悬停时会改变颜色或其背景会改变颜色