Синтаксис псевдо-состояния таблицы стилей в PyQt - PullRequest
2 голосов
/ 08 февраля 2012

У меня есть разные PushButton, перемещающиеся по моему сценарию, и я загружаю во внешний файл css для обработки массы виджетов в моем программном обеспечении.Я дошел до того, что мне приходится выслеживать кнопки по классам и пытаться определить определенные свойства.Общий вызов кнопки, например: QFrame: QPushButton #btnName {css: blah;} работает, однако псевдосостояния нет: конкретно парить и нажимать.Вот что я пытаюсь:

--THIS WORKS
QFrame:QPushButton #btnName { css: blah; }

--THESE DO NOT
QFrame:QPushButton:hover #btnName { css: hoverstuff; }
QFrame:QPushButton:pressed #btnName { css: pressedstuff; }

На листе много стилей CSS;это может быть вопросом того, что находится «над» этими строками?Мой синтаксис неверен для псевдосостояний?Что дает!?Заранее спасибо.

1 Ответ

5 голосов
/ 08 февраля 2012

Текущий синтаксис, который вы используете, неверен во всех ваших примерах.

Селектор QFrame:QPushButton будет просто игнорировать :QPushbutton, поскольку он не является действительным псевдосостоянием . Кроме того, пробел перед селектором идентификаторов означает, что правило будет применяться к всем объектам-потомкам, называемым #btnName (что, вероятно, не то, что вы предполагали, но именно поэтому первый пример вроде работает).

Я предполагаю, что вы действительно хотели, чтобы правило применялось к любому QPushButton с objectName из "btnName", который также является потомком QFrame.

В этом случае первое правило должно быть:

QFrame QPushButton#btnName { css: blah; }

и два других правила должны быть:

QFrame QPushButton#btnName:hover { css: hoverstuff; }
QFrame QPushButton#btnName:pressed { css: pressedstuff; }

См. здесь для получения дополнительной информации о типах селектора.

...