2014-01-26 6 views
0

Я пишу приложение в Qt, в котором используются элементы QToolBar. В Linux и Windows все выглядит нормально. Но в OS X QToolBar имеет ужасный градиент в качестве фона. Пожалуйста, предложите мне, как я могу его удалить?Удалить градиент от QToolBar в OS X

UPD: Я использую Qt 5.2.

+0

Этот градиентный фон является частью стиля платформы, и вам нужно, чтобы он выглядел как другие приложения OS X. Почему вы думаете, что это так не к месту? Пожалуйста, разместите небольшой скриншот панели инструментов вашего приложения и собственной панели инструментов (скажем, от Apple Mail). –

+0

Попробуйте с QtMacUnifiedToolBar от QtMacExtras –

ответ

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(//... 

Надежда, что помогает.

+0

Я использую QToolBar, а не StatusBar, и да, я пробовал настройку «background: transparent»; stylesheet для объекта QToolBar, и он не имеет никакого эффекта. – yttrium

0

Правильный вариант с QStyleSheet. Другой подход - применить, например, объект QWindowsStyle с setStyle к QToolBar. QWindowsStyle - это то, что будет иметь простой и стандартный вид на каждой платформе. Я использую его, когда хочу выглядеть так: & чувствую себя одинаково на всех платформах, несмотря на разные взгляды & чувствует себя на win/mac/unx.

0

Похоже, что панель инструментов игнорирует стиль таблицы на Mac вообще (по крайней мере, в Qt 5.2.1). Я смог удалить градиент, используя стили, например, используя стиль Windows. Кнопки панели инструментов не затрагиваются.

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