Macos 从OS X中的QToolBar中删除渐变

Macos 从OS X中的QToolBar中删除渐变,macos,qt,gradient,qtstylesheets,qtoolbar,Macos,Qt,Gradient,Qtstylesheets,Qtoolbar,我正在用Qt编写一个应用程序,它使用QToolBar元素。在Linux和Windows中,一切看起来都正常。但在OSX中,QToolBar的背景是可怕的梯度。请,建议我,我如何才能删除它 UPD:我正在使用Qt5.2。你试过QStyleSheets吗 或者,如果您在QMainWindow的上下文中使用它,它可能看起来像: this->statusBar()->setStyleSheet( //... 希望对您有所帮助。以上使用QStyleSheet的方法是正确的。另一种方法是将

我正在用Qt编写一个应用程序,它使用QToolBar元素。在Linux和Windows中,一切看起来都正常。但在OSX中,QToolBar的背景是可怕的梯度。请,建议我,我如何才能删除它


UPD:我正在使用Qt5.2。

你试过QStyleSheets吗

或者,如果您在QMainWindow的上下文中使用它,它可能看起来像:

this->statusBar()->setStyleSheet( //...

希望对您有所帮助。

以上使用QStyleSheet的方法是正确的。另一种方法是将例如带有setStyle的QWindowsStyle对象应用于QToolBar。QWindowsStyle在每个平台上都具有简单和标准的外观。当我想在所有平台上拥有完全相同的外观和感觉时,尽管在win/mac/unx上有不同的外观和感觉。

工具栏似乎完全忽略了mac上的样式表(至少在Qt 5.2.1中)。我能够使用样式删除渐变,例如使用Windows样式。工具栏按钮不受其影响

toolBar->setStyle(QStyleFactory::create("windows"));

这也是2020年Qt5.12(可能还有Qt5.15)的一个已知错误。有效的方法是设置边框(样式表中的边框可能为零):


background color
单独使用似乎无法确保重新绘制。

我使用的是QToolBar,而不是StatusBar,是的,我尝试设置“background:transparent;”该渐变背景是平台样式的一部分,您需要它使其看起来像其他OS X应用程序一样。你为什么认为它这么不合适?请发布应用程序工具栏和本机工具栏的小屏幕截图(比如来自Apple Mail)。尝试使用来自QtMacExtras的QtMacUnifiedToolBar
toolBar->setStyle(QStyleFactory::create("windows"));
QToolBar {
    background-color: palette(base);
    border-width: 0px;
}