2013-06-27 65 views
1

我需要使用不可編輯的文字塊創建QLineEdit。QTextEdit文字塊和文本格式

例如,假設我在一個QLineEdit的拖放(實際上代表)。 我想在QLineEdit的,正常寫,如果我嘗試移動光標一個字裏面它會移到它,即,將光標在結束/ begining。

此外,我希望這個詞總是顯示一個特定的亮點,用不同的顏色(模仿一個包裝它的盒子)。

有關如何做到這一點的任何想法? QTextArea會更好嗎?我正在考慮一個QLineEdit,因爲它實際上在QTableWidget單元內,所以我認爲它可能具有或多或少相同的功能,我錯了嗎?

UPDATE我發現這兩個功能,實際上可能是QLineEdit的幫助:cursorWordBackward()cursorWordForward(),所以這可能幫助過的話舉動。任何人都有這樣的例子嗎?

UPDATE 2由於QLineEdit不支持RTF格式,我需要的「高亮」功能只能通過QTextEdit實現。這有其他問題:QTextEdit沒有我在上面的第一個更新中提到的功能,我不知道是否可以將QTextEdit放入QTableWidget單元中。

回答

1

QLineEdit的只能包含純文本做到這一點,肯定不能做到這一點。我在想QTextEdit,它可以顯示HTML。但看着the documentation,我意識到無法在QTextDocument中插入不可編輯塊(QTextEdit使用該塊)。我認爲沒有簡單的解決方案。

您可以嘗試手動實施它。如果用戶將光標移動到不可編輯的區塊或更改其內容,則分別記錄其內容和光標位置並修改它們,請輸入textChanged()cursorPositionChanged()QTextEdit的信號。

+0

停止關注我! :) jk,好的建議,其實,謝謝!我可以在QTableWidget單元內創建一個QTextEdit嗎?它是_dirty_? – Joum

+1

我遵循Qt標籤,不是你:)是的,你可以使用'QItemDelegate'將定製編輯器附加到QTableWidget。參見[Color Editor Factory Example](http://harmattan-dev.nokia.com/docs/library/html/qt4/itemviews-coloreditorfactory.html)。 –

+0

你是救命的人,先生,謝謝! – Joum

-1

也許你可以通過使用inputMask ...

+0

對不起,但你能詳細說明一下嗎?據我所知,這隻允許我定義什麼可以或不可以寫在QLineEdit中,對嗎? – Joum

+0

@Joum:你可以把你的特殊單詞放到像「xxxxwor \ dxxxx」這樣的面具中,但這可能看起來並不像你想要的那樣,只適用於單詞前後的固定輸入大小。 –

+0

爲什麼downvote?這是用QLineEdit(AFAIK)做的唯一方法... –