2012-04-27 3 views
2

Я использую последнюю версию Qt и заметил, что в Windows меню отображаются в стиле старой школы (подобно тому, как они смотрят на другие кросс-платформенные приложения, такие как Firefox). Я хочу, чтобы рендеринг меню (цвета, градиент и т. Д.) Стал более современным. Можно ли скрыть или изменить способ отображения меню в Qt?Возможно ли изменить внешний вид меню верхнего уровня в Qt?

ответ

3

Я не уверен, какую версию Qt или Windows вы используете, но на моем компьютере с Windows 7 с установленным Qt 4.8.1 меню по умолчанию выглядит нормально, как и любое другое меню Windows 7.

Чтобы изменить внешний вид меню, у вас есть две широкие (простые) варианты:

  1. Используйте QStyle, чтобы изменить его на другой «родной» вид (использование QApplication::setStyle() или QWidget::setStyle()). Например, вы можете сделать его похожим на меню Windows XP, как это:

    fileMenu->setStyle(new QWindowsXPStyle); 
    
  2. Использование Qt style sheets настроить, как вы хотите, чтобы меню быть оказаны. Например:

    fileMenu->setStyleSheet("background-color: red;"); 
    
+0

Хорошо, но кто отвечает за удаление экземпляра new'd стиля? Это файлMenu, который делает это во время закрытия приложения? Или ваш ответ создал утечку памяти? –

+0

@ 987S Я не совсем уверен, но так оно и делается как в документах, так и в книгах Qt, которые я читал. Таким образом, я на 99% уверен, что меню будет владеть стилем и удалить его в соответствующее время. – Anthony

Смежные вопросы