我有一个TextItem
继承QGraphicsTextItem
。我这样做是为了在双击时我可以编辑文本,当点击出去时,文本不再可编辑。
void TextItem::mouseDoubleClickEvent(QGraphicsSceneMouseEvent * event)
{
setTextInteractionFlags(Qt::TextEditorInteraction);
setFocus();
int p = document()->documentLayout()->hitTest(event->pos(), Qt::FuzzyHit);
QTextCursor _cursor = textCursor();
_cursor.setPosition(p);
setTextCursor(_cursor);
}
void TextItem::focusOutEvent(QFocusEvent *event)
{
Q_UNUSED(event);
setTextInteractionFlags(Qt::NoTextInteraction);
}
单击时,文本不再可编辑 - 但插入符号仍然可见。
添加setCursor(Qt::OpenHandCursor);
(focusOutEvent
并且可能试图记住要设置的光标形状......我还不知道如何)解决了这个问题 - 使插入符号消失 - 但我认为这不是正确的解决方案。
然而,当不再处于编辑模式时,我找不到任何QTextCursor
隐藏插入符号的方法 - 似乎设置NoTextInteraction
应该做到这一点......
不处于编辑模式时隐藏插入符号的最佳方法是什么?