Вы можете сделать это с помощью qss (css). Но чтобы включить таблицы стилей в свой пользовательский QWidget, вам нужно обработать событие Paint.
mywidget.cpp
void QMyWidget::paintEvent(QPaintEvent *)
{
QStyleOption opt;
opt.init(this);
QPainter p(this);
style()->drawPrimitive(QStyle::PE_Widget, &opt, &p, this);
}
Добавьте ваш css (qss) в ресурсы и добавьте псевдоним, который будет использоваться в качестве имени файла для загрузки.
Вы можете добавить этот метод в главное окно, чтобы загрузить таблицу стилей.
mymainwindow.cpp
void QMyMainWindow::loadStyleSheet(QString path)
{
QFile data(path);
QString style;
if(!data.open(QFile::ReadOnly))
return false;
QTextStream styleIn(&data);
style = styleIn.readAll();
data.close();
qApp->setStyleSheet(qApp->styleSheet().append(style));
}
Затем вызовите эту функцию с псевдонимом ресурса в файле QSS (CSS). Вы можете сделать это в конструкторе или в событии изменения размера (для мобильной разработки), чтобы отслеживать и загружать разные стили для разных разрешений.