class CustomWidget : public QWidget {
Q_OBJECT
public:
explicit CustomWidget(QWidget *parent = nullptr);
~CustomWidget() override = default;
};
CustomWidget::CustomWidget(QWidget *parent) : QWidget(parent) {
setObjectName("customWidget");
}
class MainWindow : public QWidget
{
Q_OBJECT
public:
MainWindow(QWidget *parent = nullptr);
~MainWindow() = default;
};
MainWindow::MainWindow(QWidget *parent)
: QWidget(parent)
{
auto w1 = new QWidget(this);
auto w2 = new CustomWidget(this);
w1->setObjectName("QWidget");
qDebug() << w1->objectName() << w2->objectName();
auto l = new QVBoxLayout(this);
l->addWidget(w1);
l->addWidget(w2);
}
int main(int argc, char *argv[]) {
QApplication a(argc, argv);
QFile styleFile("main.qss");
styleFile.open(QFile::ReadOnly);
a.setStyleSheet(styleFile.readAll());
styleFile.close();
MainWindow w;
w.show();
return QApplication::exec();
}
QSS:
QWidget {
background-color: blue;
}
QWidget#QWidget {
background-color: red;
}
QWidget#customWidget {
background-color: green;
}
Всем привет. Добавляю в Layout два виджета: один кастомный, другой нет. Согласно QSS ожидаю, что будет две полоски: красная и зеленая, но в результате фон в кастомном виджете пропадает. Что я делаю не так?