2011-05-31 111 views
2

我需要爲我的小部件實現類似Qt Creator的代碼摺疊功能。它是QPlainTextEdit的一個子類,帶有一些額外的語法高亮和行號。它應該隱藏某些環境聲明語句和用戶請求再次顯示它們之間的文本。行號不應受到影響。例如.begin [signal]和.end [signal]之間的文本。當用戶點擊放在數字線旁邊的細豎條上的小▼時,應該隱藏,然後再次點擊▶將顯示文本。 (如Qt Creator,Eclipse和大多數其他IDE)代碼摺疊從QPlainTextEdit中分類的Qt小部件?

問題是我無法隱藏行並找到一種方法來管理行編號顯示以避免陷阱。任何建議?

回答

2

爲什麼不用QScintilla代替?這是一個經過良好嘗試的摺疊功能編輯器。

對於用自己的規則進行摺疊,您需要通過將QsciLexerCustomQsciLexer分類來製作自己的詞法分析器。我建議學習現有的詞法分析器。即使您決定不使用QScintilla,您也需要爲規則實施相同的功能。

+0

我想按自己的規則摺疊文本。 QScintilla有可能嗎? – 2011-05-31 19:53:20

+0

我編輯了我的答案。 – 2011-05-31 20:44:13

+0

目前我使用GNU srchighlite及其Qt端口srchighlite-qt進行語法高亮顯示。搬到QScintilla我應該用QScintilla的取代突出機制,這將需要時間和精力...謝謝你:) – 2011-05-31 21:08:53