【发布时间】:2015-11-22 06:43:59
【问题描述】:
我有一个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);
}
当点击退出时,文本不再可编辑 - 但插入符号仍然可见。
在focusOutEvent 中添加setCursor(Qt::OpenHandCursor);(并且可能试图记住要设置的光标形状......我还不知道如何)解决了这个问题 - 使插入符号消失 - 但我不认为它是正确的修复。
然而,当我不再处于编辑模式时,我在 QTextCursor 中找不到任何方法来隐藏插入符号 - 似乎设置 NoTextInteraction 应该可以做到这一点......
不处于编辑模式时隐藏插入符号的最佳方法是什么?
【问题讨论】:
标签: qt text-editor qgraphicsitem qgraphicstextitem