С QT, есть ли способ указать разные макеты интерфейса для разных стилей интерфейса? - PullRequest
5 голосов
/ 28 июля 2010

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

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

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

Ответы [ 2 ]

2 голосов
/ 30 июля 2010

Пожалуйста, посмотрите на QWindowsStyle , QWindowsXPStyle , QPlastiqueStyle .

И используйте

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

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

2 голосов
/ 29 июля 2010

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

enum QSizePolicy :: Policy

и ваши макеты будут хорошо работать при изменении размера и т. Д. Вместо использования фиксированных позиций...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...