gpt4 book ai didi

windows - 我如何从 Qt QGraphicsTextItem 中删除选择绘图

转载 作者:可可西里 更新时间:2023-11-01 10:00:20 27 4
gpt4 key购买 nike

我正在 Windows XP 上使用 QGraphicsScene 开发 Qt 4.8 应用程序。当用户双击 QGraphicsTextItem 时,我调用

textItem->setTextInteractionFlags(Qt::TextEditorInteraction);

在下一次选择更改时我调用

textItem->setTextInteractionFlags(Qt::NoTextInteraction);

这可以正常工作,但我发现没有办法删除编辑时留下的背景颜色反转。在下面的屏幕截图中,我首先双击第一个文本项并选择字符“2927”。然后我点击第二个测试项目并选择“est”。我找不到摆脱第一个文本项中仍然倒置的“2927”的方法(尽管它不再处于编辑模式)。

enter image description here

我也试过打电话:

    textItem->textCursor().clearSelection();
textItem->update();
textItem->setTextInteractionFlags(Qt::NoTextInteraction);
textItem->clearFocus();

但是他并没有改变行为。

所以现在我找到了解决方法:

    QString s = textItem->toPlainText();
textItem->setPlainText("");
textItem->setPlainText(s);
textItem->setTextInteractionFlags(Qt::NoTextInteraction);

我不喜欢那样,但它有效。

关于更清洁的解决方案有什么提示吗?

最佳答案

由于 QGraphicsTextItem::textCursor() 返回光标的副本,您必须将其设置回文本项才能生效。

QTextCursor cursor(textItem->textCursor());
cursor.clearSelection();
textItem->setTextCursor(cursor);

关于windows - 我如何从 Qt QGraphicsTextItem 中删除选择绘图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13201427/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com