2011-10-21 3 views
1

QGLwidget의 서브 클래스를 만들었고 스타일 시트를 사용하여 OpenGL에게 장면을 렌더링하는 방법을 알려주기를 바랬습니다. 예를 들어Qt StyleSheet 커스텀 스타일 속성 커스텀 QGLwidget

:

내 paintGL 방법에서 다음
qApp->setStyleSheet("CustomWidget { background-color: yellow }"); 

:

또한
QColor bg = "Get 'background-color' style somehow" 

glClearColorf(bg.redF(), bg.greenF(), bg.blueF(), 0); 
glClear(GL_COLOR_BUFFER_BIT) 

, 그것은 사용자 정의 스타일 시트 속성을 만들 수 있습니다?

qApp->setStyleSheet("CustomWidget { foo-attr: 1 }"); 

는 I는 QStyle 및 QStyleOption 클래스에 최대 읽고,하지만 난 꽤 실용적인 응용 프로그램에 적용하는 방법을 이해하지 않습니다.

답변

1
당신은 사용자 정의 위젯에 Q_PROPERTY를 선언 할 수

한 다음

CustomWidget 
{ 
    qproperty-yourPropertyName: "value"; 
} 
당신은 QPalette

와 사용자 정의 위젯의 BG에 액세스 할 수 있습니다

QColor bg = palette().color(QPalette::Window); 

로 설정하지만 것입니다 있는지 확실하지 않습니다 직장

+0

감사합니다. 이것은 잘 작동합니다. btw'background_color = palette(). color (QPalette :: Window)' – srossross

+0

맞습니다! 내 잘못 ... 다행히 도울 수있어. –

관련 문제