demo里 diagramscene这个例子,选中TEXT按钮后,单击graphicsview就可以输入文字,当单击的时候进入可编辑状态。
代码如下:
void Scene::mouseDoubleClickEvent( QGraphicsSceneMouseEvent *event )
{
textItem = new DiagramTextItem;
textItem->setTextInteractionFlags(Qt::TextEditorInteraction);
textItem->setZValue(1000.0);
addItem(textItem);
textItem->setPos(event->scenePos());
QGraphicsScene::mouseDoubleClickEvent(event);
}
如果注释掉 QGraphicsScene::mouseDoubleClickEvent(event); 点击view就不能进入可编辑状态。
我想实现的功能是 在一个QGraphicsItem内双击 就会产生一个TextItem 并且进入可编辑状态,但TextItem无法进入可编辑状态
代码如下:
void Node::mouseDoubleClickEvent( QGraphicsSceneMouseEvent *event )
{ textItem = new DiagramTextItem;
textItem->setPlainText("drgddf");
textItem->setTextInteractionFlags(Qt::TextEditorInteraction);
textItem->setZValue(1000.0);
scene()->addItem(textItem);
textItem->setPos(event->scenePos());
textItem->textInteractionFlags();
QGraphicsItem::mouseDoubleClickEvent(event);
}如果让QGraphicsScene相应doubleclick事件,QGraphiceTextItem就可以进入可编辑状态,如果QGraphicsItem相应,就无法进入。
但是TextInteractionFlags却一直是Qt::TextEditorInteraction。
我所指的可编辑状态是指第一次产生textitem时候就进入可编辑状态。
测试了半天也找不到问题所在,哪位同学知道其中的原有呢。