#css #qt #opengl #qt4 #pyqt
#css #qt #opengl #qt4 #pyqt
Вопрос:
Я создал подкласс QGLWidget и надеялся, что смогу использовать таблицу стилей, чтобы указать OpenGL, как отображать сцену.
Например:
qApp->setStyleSheet("CustomWidget { background-color: yellow }");
Затем в моем методе paintGL:
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 }");
Я прочитал о классах QStyle и QStyleOption, но я не совсем понимаю, как применить их к практическому применению.
Ответ №1:
Вы можете объявить Q_PROPERTY в своем пользовательском виджете, а затем установить их с помощью
CustomWidget
{
qproperty-yourPropertyName: "value";
}
Вы можете получить доступ к BG вашего пользовательского виджета с помощью QPalette
QColor bg = palette().color(QPalette::Window);
Но я не уверен, что это сработает
Комментарии:
1. Спасибо. Это отлично работает. кстати
background_color = palette().color(QPalette::Window)