2015-10-13 22 views
0

我想在子類QPlainTextEdit中只讀特定行。如何在QPlainTextEdit中只讀行?

我知道我可以覆蓋keyPressed事件,並忽略行上的只讀,但我需要過濾非編輯鍵(如箭頭導航鍵)的關鍵事件。另外,這不會考慮在該行上粘貼文本。

是否有任何內置支持或更好的方式?

+0

請記住,只有使用鍵才能進行編輯。這也使用鼠標,重做/撤消,複製粘貼,...在我看來,你需要修改Qt來添加所需的功能。 –

回答

1

如果您跟蹤「只讀」部分的開始和結尾,則可以在光標或部分選定內容進入只讀範圍時更改整個文檔的只讀屬性。

http://doc.qt.io/qt-5/qplaintextedit.html#readOnly-prop

我會用語法高亮顯示,使只讀部分不同的顏色,所以它更有意義給最終用戶。

http://doc.qt.io/qt-5/qtwidgets-richtext-syntaxhighlighter-example.html

希望有所幫助。

+0

這是不夠的。想想當你試圖剪切包含一個或多個r/o部分的選擇時會發生什麼。我不確定那些不接觸Qt代碼的黑客可以工作:( –

+0

是的,我也在想這個。是否有辦法檢測剪切/粘貼(或任何會導致文本更改的東西) )? –