【发布时间】:2019-08-11 11:31:34
【问题描述】:
我已经对 Qgraphicsscene 和 Qgraphicsitem 进行了子类化,它似乎有效,但尝试通过子类识别删除项目不起作用。 这将删除项目:
void debugSceneItemscuatrobis()
{
QList<QGraphicsItem *> allitems = items();
foreach(auto item, allitems) {
removeItem(item);
}
}
但这没有,它识别出有项目但不删除它们,尝试了不同的可能性但无法使其工作。
void debugSceneItemscuatrotris()
{
QList<QGraphicsItem *> allitems = items();
foreach(auto item, allitems) {
if(item->type() == chord::Type) {
removeItem(item);
delete item;
}
}
}
这是 qgraphicsitem 子类添加项目的方式:
void chord::addchord(QPointF sp)
{
scene()->addLine(sp.x(), sp.y(), sp.x()+10, sp.y()+10);
QList<int> midics = {10, 30, 40};
for(int i = 0; i < midics.length(); i++)
{
QGraphicsSimpleTextItem *item = new QGraphicsSimpleTextItem("n");
item->setFont(QFont("omheads", 20));
item->setPos(sp.x(), sp.y()+midics[i]);
scene()->addItem(item);
coso.append(item);
}
}
对不起,我是新手,也不是程序员,这是我的第一个子类。有人知道如何接近它吗?谢谢。 :-)
【问题讨论】:
标签: qt qt5 qgraphicsscene qgraphicsitem