2013-02-05 2 views
0

Qt CSS를 사용하여 QStackedWidget에서 QWidget의 배경색을 변경하려면 어떻게해야합니까? 내 ProjectPageCSS를 사용하여 QStackedWidget 내의 QWidget의 배경색을 변경하는 방법은 무엇입니까?

ProjectPage* p = new ProjectPage(this); 
ui.stackedWidget->addWidget(p); 

는 Qt는 디자이너에 내장 된 사용자 정의 QWidget이다. 현재 디자이너에서 ProjectPage의 배경색을 변경하려고 시도했지만 작동하지 않았습니다. 내 응용 프로그램에 배경색이 표시 될 때 배경색이 기본 색상이기 때문에 오류입니다. QWidget은 CSS를 사용하지만, 내 ProjectPage의 모든 레이블과 버튼은 색상이 변경된 유일한 예외입니다.

현재 QstackedWidget css 문서를 찾을 수 없습니다.


참고 : 배경 이미지는 나는이 모든 QWidgets의 기본 이미지를 설정 한 저와 관련이있을 가능성을 탐구하고있어, 잘 작동합니다. 당신이 사용자 정의 위젯 클래스의 paintEvent을 무시하는 경우

답변

0

내 문제는 css 아래 코드를 참조하십시오.

QWidget { 
    background-image: url(:/texture.png); 
} 

기본 텍스처를 정의하면 설정 한 모든 배경색이이 텍스처 뒤에 숨겨집니다.

해결 방법은 QWidget에서 기본 텍스처를 제거하거나 필요한 색상으로 새로운 텍스처를로드하는 것입니다.

2
setStyleSheet ("YourQWidgetBasedPageClass#nameOfYourPageWidget {background: white;}"); 

, 구현 어딘가에 기본 QWidget::paintEvent 전화를 기억하거나 CSS는 # 이름이있는 경우에만 필요하다고

노트에 걷어차하지 않습니다 특정 위젯을 선택하려고합니다. 또한 색상은 흰색, 빨간색, 보라색 등의 HTML 스타일 이름 중 하나 일 수 있습니다. #XXXXXX 스타일 색상 또는 RGB (...)를 사용할 수도 있습니다.

+0

기본 paintEvent() 메소드를 사용하고 있습니다. 디자이너에서 백그라운드 변경을 수행하여 잘못된 이름을 얻을 수있는 방법이 없습니다. – andre

+0

위의 설명대로 디자이너의 특정 위젯에 스타일 시트를 설정할 수 있습니다. – cppguy

+0

이미 문제가 해결되었습니다. 아래 답변을 참조하십시오. – andre

관련 문제