Qt Таблица стилей пользовательский атрибут стиля пользовательский QGLWidget

#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)