Стилизация только продвинутых виджетов с использованием QT Creator - PullRequest
4 голосов
/ 29 сентября 2010

Я новичок в Qt и занимаюсь проектированием форм с использованием Qt Creator. Я заметил, что могу применять стили для определенных виджетов в таблице стилей формы, и это будет стилизовать каждый виджет в форме. Например, "QPushButton {color: red;}" заставит все QPushButtons в форме иметь красный текст.

Можно ли применять стили только к определенным группам виджетов? Например, если я продвигаю QPushButton и называю его MyButton, как я могу установить стили только для MyButton. Я ожидал, что смогу сделать что-то вроде «MyButton {color: green;}», но это не сработает.

Есть ли лучший способ сделать то, что я пытаюсь сделать (желательно с помощью Qt Creator)? Кажется, я нигде не могу найти пример этого, но, возможно, это потому, что я не использую правильную терминологию.

Спасибо, Mark

Ответы [ 2 ]

4 голосов
/ 29 сентября 2010

Существует множество вариантов указания селекторов в таблицах стилей.Они задокументированы здесь .

Я использую (на что намекают в официальном справочном документе по таблице стилей ) | =

QPushButton[objectName|="somePrefix_"]

Я использую это для выбора элементов с одинаковым префиксом имени объекта.Конечно, вы можете добиться аналогичного результата, применив таблицу стилей к панели, содержащей кнопки, которые вы хотите по-разному стилизовать, но это может оказаться сложным.

2 голосов
/ 29 сентября 2010

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

Используйте QApplication::setStyleSheet() для установки глобальной таблицы стилей

...