Это мой первый пост.Я недавно начал использовать QT с C ++.Очень впечатлен.У меня есть проблема, с которой я не могу справиться.По сути, я пытаюсь организовать множество QGraphicsItems
в два QGraphicsItemGroups
.Элементы отображаются с помощью QGraphicsScene
на QGraphicsView
.Создание предметов и отображение предметов работает как шарм.Однако, когда я добавляю группировку, программа каждый раз вылетает по команде.Причина добавления группировок состоит в том, чтобы позже иметь возможность выбирать, какие элементы отображать в Paintevent.Соответствующий код указан ниже.
QGraphicsScene * scene;
scene = new QGraphicsScene(this);
ui.graphicsView->setScene(scene);
QBrush whiteBrush;
QBrush imageBrush;
QPen blackPen;
whiteBrush = QBrush(Qt::white);
imageBrush = QBrush(Qt::lightGray);
blackPen = QPen(Qt::black);
blackPen.setWidth(1);
QGraphicsItemGroup * cliGroup;
QGraphicsItemGroup * alfGroup;
cliGroup = new QGraphicsItemGroup;
alfGroup = new QGraphicsItemGroup;
scene->addItem(cliGroup);
scene->addItem(alfGroup);
QGraphicsPolygonItem *poly;
poly = scene->addPolygon(polyF, blackPen, imageBrush);
cliGroup->addToGroup(poly); //line it crashes on
Я подозреваю, что это как-то связано с созданием полигонов на сцене и последующим добавлением их к QGraphicsItemGroup
, хотя я не могу понять, как изменитьэто на работу.С тех пор я прибег к менее элегантному решению, основанному на фильтрации элементов в сцене по типу, но это краткосрочно и грязно.Есть предложения?