關注、星標公眾號,直達精彩內容ID:技術讓夢想更偉大作者:李肖遙編輯器" style="font-weight: bold;padding-top: 30px;padding-bottom: 30px;color: rgb(19, 92, 224);font-size: 20px;">Markdown編輯器
Markdown 是一種具有純文本格式語法的輕量級標記語言,
Markdown Editor
演示了如何使用 QWebChannel 和 JavaScript 庫為自定義標記語言提供富文本預覽工具。Markdown 編輯器主窗口分為編輯器和預覽區(qū),編輯器支持 Markdown 語法,使用 QPlainTextEdit 實現(xiàn);文檔在預覽區(qū)渲染為富文本,通過QWebEngineView實現(xiàn)。為了呈現(xiàn)文本,Markdown 文本在 Web 引擎內的 JavaScript 庫的幫助下轉換為 HTML 格式,預覽是通過 QWebChannel 從編輯器更新的。下圖演示如何將 Web 引擎集成到混合桌面應用程序中。
我們使用例子,左側輸入Markdown語法的文本,右側就是其預覽的樣式了。
編輯器" style="font-weight: bold;padding-top: 30px;padding-bottom: 30px;color: rgb(19, 92, 224);font-size: 20px;">實現(xiàn)原理以及步驟
公開文檔文本
通過 QWebChannel 將要渲染的當前 Markdown 文本暴露給 Web 引擎,所以我們需要以某種方式通過 Qt 元類型系統(tǒng)使當前文本可用,這是通過使用將文檔文本公開為
Q_PROPERTY
的專用 Document 類來完成的:通過 QWebChannel 將要渲染的當前
Markdown 文本暴露給 Web 引擎,將文檔文本公開為
Q_PROPERTY
的專用 Document 類,然后通過 Qt 元類型系統(tǒng)使當前文本可用。Document 類使用setText()方法包裝要在C 端設置的 QString,并在運行時將其作為帶有 textChanged 信號的文本屬性公開。定義 setText 方法如下:
void?Document::setText(const?QString?