Pyqt: Как изменить цвет заголовка QGroupBox?
У меня есть QGroupBox, который objectName является "of_esq". Как мне изменить цвет его заголовка?
Это что-то вроде: self.of_esq.setStyleSheet("of_esq.title {color: green}")
?
2 ответа
Если вы устанавливаете таблицу стилей непосредственно на of_esq
виджет, вы могли бы просто сделать (при условии, что у него нет ребенка QGroupBoxes
self.of_esq.setStyleSheet('QGroupBox {color: green;}')
Вы также можете установить таблицу стилей на of_esq
's родитель и ссылка на виджет по имени, используя селектор идентификатора css (#
)
self.setStyleSheet('#of_esq {color: green;}')
Поздно на вечеринку, но вот как я это сделал:
Сначала я создал свой пользовательский интерфейс в Qt Designer, который содержал QGroupBox. Я потратил слишком много времени, пытаясь найти свойство цвета в Qt Designer, которое ТОЛЬКО повлияло бы на заголовок QGroupBox. Наконец, я прибег к изменению преобразованного кода пользовательского интерфейса (обращая внимание на "ПРЕДУПРЕЖДЕНИЕ! Все изменения, сделанные в этом файле, будут потеряны!", Предоставленные утилитой преобразования)
Затем я нашел код, в котором настраивалась таблица стилей в виджете groupBox:
self.groupBox.setStyleSheet("")
Затем я изменил этот код, "углубляясь" в заголовок, чтобы установить цвет:
self.groupBox.setStyleSheet('QGroupBox:title {color: rgb(1, 130, 153);}')
Похоже, это работает и для других виджетов, используя первый пример Брендана Абеля. Просто убедитесь, что вы конкретно указали точный виджет.
Чтобы проверить, я добавил три переключателя в свой макет (в QGroupBox). После сохранения я восстановил код пользовательского интерфейса Python. Затем я изменил только одну из переключателей:
self.radioButton_2.setStyleSheet('QRadioButton {color: rgb(1, 130, 153);}')
Это ТОЛЬКО изменило цвет текста виджета radioButton_2.
Гораздо удобнее иметь свойства цвета виджета, доступные в Qt Designer, но это, кажется, жизнеспособный обходной путь. Просто помните, что восстановление кода пользовательского интерфейса после внесения изменений в Qt Designer перезапишет ваш измененный код.