На этом шаге рассмотрим встроенные стили Qt.
По умолчанию вид и поведение Qt-приложения определяется операционной системой, на которой оно запущено. Но это можно изменить и использовать. Qt предоставляет следующие встроенные стили (рис. 1): Windows, fusion.
Рис.1. Пример отображения виджетов с различными стилями
Файлы приложения можно взять здесь.
Эти стили эмулируются и доступны на любых платформах, кроме стилей QWindowsXPStyle и QMacStyle, которые доступны только на "родных" платформах. Стиль можно установить, вызвав любое Qt-приложение с командной опцией -style, или же программно.
Для того чтобы установить стиль в приложении, нужно вызвать метод setStyle() и передать ему объект стиля или строку с его названием:
QApplication::setStyle(QStyleFactory::create("fusion"));
В этом случае вызывается статический метод QApplication::setStyle(), которому передается динамически созданный объект стиля. Классы стилей наследуются от класса QObject, не используя механизм объектной иерархии, и ответственность за уничтожение созданных объектов несет класс QApplication. Передача объекта стиля в метод setStyle() приводит к тому, что этот метод сначала с помощью оператора delete уничтожает старый объект стиля. Поэтому можно создавать объекты стиля непосредственно в самом методе setStyle(), и не создавать дополнительных указателей на эти объекты. В статический метод QStyleFactory::create() передается строка со стилем, а он создает соответствующий объект стиля.
В Qt можно смешивать различные стили, т. е. задавать каждому из виджетов в отдельности свой собственный стиль. Этого делать не рекомендуется.
На следующем шаге рассмотрим создание собственных стилей в Qt.