2012-02-07 3 views
1

필자는 내 스크립트에 대해 여러 가지 PushButton을 로밍하고 있으며, 내 소프트웨어의 위젯을 처리하기 위해 외부 CSS 파일을로드하고있다. 클래스별로 버튼을 찾아 특정 속성을 정의해야하는 시점에 이르렀습니다. 버튼에 대한 일반적인 호출은 다음과 같습니다. QFrame : QPushButton #btnName {css : blah; }가 작동하지만 pseudo-states는 구체적으로 마우스를 올려 놓고 누른 상태입니다. 여기 내가 뭘하려고하는지 :Stylesheet PyQt의 가짜 상태 구문

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

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

시트에 CSS 스타일링이 많이 있습니다. 이 라인보다 '위에'있는 것의 문제 일 수 있습니까? 의사 상태에 대한 구문이 잘못 되었습니까? 무엇을 준다!? 미리 감사드립니다.

+0

재미 있습니다. 그 구문은 나를 위해 작동하지 않습니다. 거기서 일하고있는 것이 확실합니까? 사실, QFrame QPushButton # btnName'이어야합니다. 공백과 결장에주의하십시오. 또한 의사 상태의 경우 QFrame QPushButton # btnName : hover를 실행해야합니다. – Avaris

답변

4

사용중인 현재 구문이 모든 예에서 잘못되었습니다.

셀렉터 QFrame:QPushButtonpseudo-state이므로 유효하지 않으므로 :QPushbutton을 무시합니다. 또한 ID 선택기 앞에있는 공간은 모두 자손 개체 인 #btnName (적용 대상이 아닐 수도 있지만 어쨌든 첫 번째 예제가 작동하는 이유입니다)에 규칙이 적용됨을 의미합니다.

나는 QPushButtonobjectName의 "btnName"이 적용되고이 규칙이 QFrame의 자손이기 때문에 실제로 원하는 것으로 가정합니다.

하는 경우, 첫 번째 규칙은 다음과 같아야합니다

QFrame QPushButton#btnName { css: blah; } 

다른 두 가지 규칙이되어야한다 :

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

은 선택기 유형에 대한 자세한 내용은 here를 참조하십시오.

+0

항상 개인 구세주, ekhu. 감사! – Cryptite