1
我開發在Windows XP中使用QGraphicsScene一個Qt 4.8的應用程序繪製。 當用戶雙擊一個QGraphicsTextItem,我叫如何刪除選擇從一個Qt QGraphicsTextItem
textItem->setTextInteractionFlags(Qt::TextEditorInteraction);
在接下來的選擇改變我打電話
textItem->setTextInteractionFlags(Qt::NoTextInteraction);
這工作正常,但我覺得沒有辦法去除背景色的反轉這仍然來自編輯。在下面的屏幕截圖,我第一雙點擊第一個文本項目和所選字符「2927」。然後我點擊第二個測試項目並選擇「est」。我覺得沒有辦法在第一文本項擺脫仍然倒「2927」(雖然它不是在編輯模式了)。
我也試着撥打:
textItem->textCursor().clearSelection();
textItem->update();
textItem->setTextInteractionFlags(Qt::NoTextInteraction);
textItem->clearFocus();
但他根本不會改變的行爲。
所以,現在我找到了一個解決辦法:
QString s = textItem->toPlainText();
textItem->setPlainText("");
textItem->setPlainText(s);
textItem->setTextInteractionFlags(Qt::NoTextInteraction);
我不喜歡這一點,但它的工作原理。
任何暗示了一個更清潔的解決方案嗎?
,我已經做到了!看我的帖子。 –
對不起,錯過了!奇怪它不起作用。我將建議確保調用clearSelection()實際上正在執行,但是如果您的解決方法正在工作,我想可能是其他代碼被正確調用。也許我會爲此嘗試一個實驗。 –
我已經更新了我的答案。 –