删除/删除/替换QGraphicsTextItem中的选定文本

时间:2015-09-30 22:59:11

标签: qt clipboard qgraphicsitem qgraphicstextitem

我想删除QGraphicsTextItem内的所选文字。

我一直在搜索它使用的所有类 - 例如QTextCursorQTextDocument ...除了{clear()函数之外,我找不到任何删除文本的内容1}}删除所有内容......

如何删除选择?

QTextDocument

或者(因为我需要这个用于自定义粘贴命令),如何用现有文本或html替换选择?

    QTextCursor _cursor = textCursor();
    if(_cursor.hasSelection())
        ?

1 个答案:

答案 0 :(得分:1)

不能正常工作QTextCursor::removeSelectedText()

在下一个示例中,我们在文本开头QGraphics Text Item 1,但正如您将看到的,我们可以获取该文档的QTextDocumentQTextCursor并插入一些词语的

之后,我们将光标移动到下一个单词。最后,我们选择光标(Text)下的字词,然后将其从QGraphicsTextItem中移除。

#include <QApplication>
#include <QGraphicsScene>
#include <QGraphicsView>
#include <QGraphicsTextItem>
#include <QTextCursor>
#include <QTextDocument>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);

    QGraphicsScene scene;
    QGraphicsView view(&scene);

    QGraphicsTextItem* item_1  = new QGraphicsTextItem("QGraphics Text Item 1");
    item_1->setTextInteractionFlags(Qt::TextEditorInteraction);

    QTextDocument* doc = item_1->document();

    scene.addItem(item_1);

    QTextCursor cursor(doc);
    cursor.beginEditBlock();
    cursor.insertText(" Hello ");
    cursor.insertText(" World ");
    cursor.endEditBlock();
    cursor.movePosition(QTextCursor::NextWord);
    cursor.select(QTextCursor::WordUnderCursor);
    cursor.removeSelectedText();

    view.setFixedSize(640, 480);
    view.show();
    return a.exec();
}