2010-07-28 4 views
5

У меня есть приложение для кросс-платформенной Qt, и независимо от того, как я настраиваю пользовательский интерфейс, он всегда выглядит хорошо на некоторых платформах и плох на других, из-за различий между стилями пользовательского интерфейса.С QT, есть ли способ указать различные макеты пользовательского интерфейса для разных стилей пользовательского интерфейса?

Например, поля кажутся универсальными, даже если базовые элементы резко меняются с одной платформы на другую.

Какой рекомендуемый способ справиться с этим?

ответ

2

Возможно, самым безопасным способом является использование самого базового пользовательского интерфейса. Лично я использую стиль стиля css qt. Также убедитесь, что когда вы подклассифицируете свои виджеты, вы должным образом переопределяете методы событий (т. Е. ResizeEvent (...), передавайте параметры суперклассу, когда это необходимо, и т. Д.). Следуя основным рекомендациям из Qt Docs, вы должны это сделать. Еще одно замечание о макетах, убедитесь, что вы используете:

перечислимую QSizePolicy :: Политика

соответственно и ваши макеты потока хорошо при изменении размеров и т.д., вместо того, чтобы использовать фиксированные позиции ...

2

Пожалуйста, взгляните на QWindowsStyle, QWindowsXPStyle, QPlastiqueStyle.

И использовать

void QApplication::setStyle (QStyle * style) [static] 

Делая это, вы должны иметь один взгляд на все ОС-эс.

+0

Но это не идеальное решение для реального кросс-платформенного приложения. Никто не хочет использовать приложение, скажем, в OS X, которое выглядит как приложение Windows. – Nantucket

+0

Согласен! Конечно. Вы пытались установить MacOS Style в MacOS и Windows Style в Windows? Возможно, вы решите проблемы с макетами ... – Narek

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