我有一个scene.addLine(x0,y0,x1,y1,QPen(Qt::green));
点击clear,想把那条线去掉。
修改qt的源代码如下:
qgraphicsscene.h:
新增public std::vector<QGraphicsItem* > items_to_remove;
qgraphicsscene.cpp:
QGraphicsLineItem *QGraphicsScene::addLine(const QLineF &line, const QPen &pen)
{
QGraphicsLineItem *item = new QGraphicsLineItem(line);
item->setPen(pen);
addItem(item);
//新增的部分
printf("here");
//TODO:push_back*********************
item_to_remove.push_back(item);
//新增结束
return item;
}
运行程序的时候,addline画线了,可是根本没有打印here,可见这个方法没有执行,太奇怪了,为什么没有执行?
或者大神们有没有什么办法clear掉line呢?
------解决思路----------------------
改了Qt源码你需要重新编译Qt源码库啊
------解决思路----------------------
对头,首先编译Qt库,然后配置Qt Creator使用你编译的版本,这样才能验证。另外最好使用qDebug,表用printf