我正在Qt中编写一个使用QToolBar元素的应用程序。在Linux和Windows中,一切看起来都不错。但在OS X中,QToolBar具有可怕的渐变作为其背景。请建议我,我该如何删除它?
UPD。:我正在使用Qt 5.2。
答案 0 :(得分:0)
你试过QStyleSheets吗?
http://qt-project.org/doc/qt-5/stylesheet-examples.html#customizing-qstatusbar
http://qt-project.org/doc/qt-5/stylesheet-reference.html#background-prop
QStatusBar * bar;
bar = new QStatusBar;
bar->setStyleSheet("background: transparent;");
// bar->setStyleSheet("background: none;");
// bar->setStyleSheet("background: white;");
bar->showMessage("StatusBar");
或者,如果您在QMainWindow的上下文中使用它,它可能看起来像:
this->statusBar()->setStyleSheet( //...
希望有所帮助。
答案 1 :(得分:0)
使用QStyleSheet的方法是正确的。另一种方法是将带有setStyle的QWindowsStyle对象应用于QToolBar。 QWindowsStyle在每个平台上都具有简单和标准的外观。我希望在所有平台上看起来和感觉完全相同,即使在win / mac / unx上有不同的外观和感觉,我也会使用它。
答案 2 :(得分:0)
似乎工具栏完全忽略了Mac上的styleSheets(至少在Qt 5.2.1中)。我能够使用样式删除渐变,例如使用Windows样式。工具栏按钮不受影响。
toolBar->setStyle(QStyleFactory::create("windows"));
答案 3 :(得分:0)
这也是 2020 年 Qt5.12(可能还有 Qt5.15)中的一个已知错误。有效的是设置边框(样式表的边框可能为零):
QToolBar {
background-color: palette(base);
border-width: 0px;
}
background-color
似乎并不能确保它重新粉刷。