2013-03-20 13 views
6

QWidget veya QGLWidget arka plan rengini bulmaya çalışıyorum, böylece OpenGL parçasını yerel olarak widget'ın içinde (örneğin siyah bir arka plan olmadan) görünmesini sağlamak için qglClearColor() ile kullanabilirsiniz.Widget arka plan nasıl oluşturulur? QColor

Widget'ım backgroundRole()'u getirebileceğimi düşündüm ancak QColor numaralı telefona dönüştürmede sorun yaşıyorum. QPalette::color(QColorRole) var, ancak statik değil ve dönüşümü yapmak için QPalette örneğini nasıl oluşturacağımı bilmiyorum.

+1

Uygulama genelinde palet almak için 'qApp-> paletini()' aramayı denediniz mi ve daha sonra 'QPalette :: brush()' veya 'QPalette :: color()' olarak adlandırın mı? – user2155932

cevap

17

Bu parçacık için arka plan rengi rolünün rengini almak üzere QWidget::palette().color(QWidget::backgroundRole()) kullanın. Açıkçası, bu ayrıca QWidget'i devralan herhangi bir sınıfla da çalışmalıdır.

+0

Düzenleme: çalışır, teşekkürler! –

+0

'qglClearColor' için çağrınız, QGLWidget alt sınıfınızın yapıcısında doğru değil mi? IntifizeGL, paintGL veya OpenGL içeriğinizin oluşturulmasından sonra sadece çağrılabilen fonksiyonların herhangi bir otheronunda olmalıdır. –

+0

Evet, başlangıçta GL'dir. PaintG() 'ye' glClear (GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); –