QTextEdit和QTextDocument(ZZ)

http://blog.csdn.net/rea_1121/article/details/6432064

QTextEdit簡介:

它可以顯示rich text。 這裏的rich text不是指microsoft的rich text,而是用html標籤表示的形式。

它通過viewport顯示大型文件,而且性能好,可以快速響應用戶的操作。

以paragraph和character爲基本單位工作。paragraph是格式化的字符串,自動word-wrap以適應容器的大小。一個document由paragraph組成。paragraph可以有自己的alignment屬性,paragragh之間由hard line break截斷。每個character有自己的字體和顏色等屬性。

QTextEdit可以顯示圖像,列表和表格。必要時會有滾動條以瀏覽全文。text edit可以顯示plain text和html文件。QtWebKit是比較完整的瀏覽器控件。QLabel也可以顯示小段的rich text.

方法:

I. 顯示文本:

setHtml(), toHtml(), clear()用來控制內容到html的轉換,還有清除內容。

插入內容:insertHtml(), insertPlainText(), append(), paste(). 類QTextCursor可以用來插入table,list,text,還用來創建selection和修改selection

word wrap: 默認的方式是在空白字符處wrap。 setLineWrapMode() 可以指定wrap的模式,像素,幾列,從來不wrap,隨便wrap.

查找:find()方法用來查找和選定text內的制定字符串。

可以設置QTextDocument的maximumBlockCount屬性來控制文檔最多顯示的段落數。

II.編輯文本:

設置當前character的屬性:setFontItalic (), setFontWeight (), setFontUnderline (), setFontFamily (),setFontPointSize (), setTextColor () and setCurrentFont ().

設置當前paragraph的屬性:

得到類QTextCursor來操控selection: textCursor(),返回當前可見的cursor; 創建一個QTextCursor對象setTexctCursor()。 copy和cut方法會把當前選中的文本放到剪貼板中。currentCharFormatChanged()是個信號,cursor移動而且字符格式改變時會被調用。

得到類QTextDocument來操控:document()。setDocument()可以用來設置document. 當document改變時會有textChanged()信號。 isModified方法可以來檢查document是否改變。它也有undo() redo()方法。

還有一部分context menu的方法。

QTextDocument簡介:

存放結構化的rich text文件,每個元素都有對應的格式對象。可以通過objectForFormat()來通過格式對象查找元素。

可以通過QTextCursor來編程編輯QTextDocument對象。通過rootFrame()方法得到根節點再遍歷其中的元素。如果只是瀏覽其中的文本文檔,就用begin(),end(),findBlock()方法。

文本的格式由documentLayout()決定.metaInformation()來的到文件的元信息。

toPlainText()和toHtml()方法能夠得到它text形式的內容和html形式的內容。

QTextCursor簡介:

QTextCursor是專門用來協助處理和獲取QTextDocument內容的一組api. 它包含的信息既有QTextDocument內的光標位置(position()),以及所做的selection(anchor() 和 position()之間)。current character是指position之前的那個character. current block是指包含position()位置的block.

方法:

setPosition(), movePosition() 可以用來創建selection。取得selection的內容:selectionStart (), selectionEnd (),hasSelection (), clearSelection (), andremoveSelectedText ().

取得format信息:charFormat (), blockFormat ().

設置format信息:setCharFormat (),mergeCharFormat (),setBlockFormat () andmergeBlockFormat (). merge會把本來的格式合併。噹噹前有selection時,char format會對應到所選中的內容上;即使block沒有全選,block format會應用於整個block.

刪除文本:deleteChar (), deletePreviousChar (), andremoveSelectedText ().

插入文本:insertText () function, insertBlock (). insertList (),insertTable (),insertImage (),insertFrame ()

action可以分組(被undo/redo當作一個操作):beginEditBlock () and endEditBlock ().

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章