Всем привет. Есть приложение, которое отображает большое кол-во (>1000) наследников QFrame. Для их отображения я выбрал QScrollArea, вот код
QFrame *substrate = new QFrame();
substrate -> setObjectName("visitorListSubstrate");
areaFrameLay = new QVBoxLayout(substrate);
areaFrameLay -> setMargin(0);
areaFrameLay -> setSpacing(1);
areaFrameLay -> addStretch();
area = new MyScrollArea();
area -> setObjectName("VisitorListArea");
area -> setWidget(substrate);
area -> setWidgetResizable(true);
area -> setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
area -> verticalScrollBar() -> setObjectName("chatsScrollBar");
...
for(auto item : items) {
...
areaFrameLay -> insertWidget(index, item);
}
- CSS не применяются к элементам внутри сцены (пришлось явно вызывать setStyleSheet для объектов). parent указать не смог объектам сцены, наткнулся на runtime ошибку
- Ячейки приняли статический размер и не растягиваются вместе с самим QGraphicsView (а мне это нужно..)
Вот код, который я пробовал
scene = new QGraphicsScene(this);
area = new QGraphicsView(scene, this);
QFrame *substrate = new QFrame();
substrate -> setObjectName("visitorListSubstrate");
areaFrameLay = new QVBoxLayout(substrate);
areaFrameLay -> setMargin(0);
areaFrameLay -> setSpacing(1);
areaFrameLay -> addStretch();
scene -> addWidget(substrate)