Стайлинг только продвигаемых виджетов с помощью QT Creator


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

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

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

Спасибо, Марк

2 4

2 ответа:

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

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

QPushButton[objectName|="somePrefix_"]

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

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

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