Remove/delete/replace 在 QGraphicsTextItem 中选择了文本
Remove/delete/replace selected text in QGraphicsTextItem
我想删除 QGraphicsTextItem
.
中的选定文本
我一直在搜索它使用的所有 类 - 例如 QTextCursor
、QTextDocument
...我找不到任何可以删除文本的东西,除了 clear()
QTextDocument
的函数删除所有内容...
如何删除选择?
QTextCursor _cursor = textCursor();
if(_cursor.hasSelection())
?
或者(因为我需要这个用于自定义粘贴命令),我如何用现有文本或 html 替换选择?
QClipboard* _clipboard = QApplication::clipboard();
const QMimeData* _mimeData = _clipboard->mimeData();
if (_mimeData->hasHtml())
{
QTextCursor _cursor = textCursor();
if(_cursor.hasSelection())
?
_cursor.insertHtml(_mimeData->html());
}
不工作QTextCursor::removeSelectedText()
?
在下一个示例中,我们在开头有文本 QGraphics Text Item 1
,但正如您将看到的,我们可以获得该文档的 QTextDocument
和 QTextCursor
,并且插入一些单词。
之后,我们将光标移动到下一个单词。最后,我们 select 光标下的单词 (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();
}
我想删除 QGraphicsTextItem
.
我一直在搜索它使用的所有 类 - 例如 QTextCursor
、QTextDocument
...我找不到任何可以删除文本的东西,除了 clear()
QTextDocument
的函数删除所有内容...
如何删除选择?
QTextCursor _cursor = textCursor();
if(_cursor.hasSelection())
?
或者(因为我需要这个用于自定义粘贴命令),我如何用现有文本或 html 替换选择?
QClipboard* _clipboard = QApplication::clipboard();
const QMimeData* _mimeData = _clipboard->mimeData();
if (_mimeData->hasHtml())
{
QTextCursor _cursor = textCursor();
if(_cursor.hasSelection())
?
_cursor.insertHtml(_mimeData->html());
}
不工作QTextCursor::removeSelectedText()
?
在下一个示例中,我们在开头有文本 QGraphics Text Item 1
,但正如您将看到的,我们可以获得该文档的 QTextDocument
和 QTextCursor
,并且插入一些单词。
之后,我们将光标移动到下一个单词。最后,我们 select 光标下的单词 (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();
}