「Qt Widget中文示例指南」如何實現文檔查看器?(二)

Qt 是目前最先進、最完整的跨平臺C++開發工具。它不僅完全實現了一次編寫,所有平臺無差別運行,更提供了幾乎所有開發過程中需要用到的工具。如今,Qt已被運用於超過70個行業、數千家企業,支持數百萬設備及應用。

文檔查看器是一個顯示和打印JSON、文本和PDF文件的Widgets應用程序。Document Viewer(文檔查看器)演示瞭如何使用帶有靜態和動態工具欄、菜單和操作的QMainWindow,此外它還演示了基於小部件的應用程序中的以下特性:

  • 使用QSettings查詢和保存用戶參數,並管理以前打開的文件歷史記錄。
  • 控制光標懸停在小部件上時的操作。
  • 創建動態加載的插件。

在上文中(點擊這裏回顧>>)主要介紹了創建一個應用程序和主窗口的一些類,本文將繼續介紹一些其他類,請持續關注哦~

「Qt Widget中文示例指南」如何實現文檔查看器?

創建一個應用程序和主窗口

AbstractViewer 類

AbstractViewer提供了一個通用的API來查看、保存和打印文檔,可以查詢文檔和查看器的屬性:

  • 文檔有內容嗎?
  • 修改過了嗎?
  • 是否支持概覽(縮略圖或書籤)?

AbstractViewer爲派生類提供了受保護的方法,以便在主窗口上創建操作和菜單。爲了在主窗口上顯示這些資產,它們是主窗口的父類。

AbstractViewer負責刪除和銷燬它創建的UI資產,它繼承自QObject來實現信號和插槽。

信號

void uiInitialized();

該信號在查看器接收到主窗口上有關UI資源的所有必要信息後發出。

void printingEnabledChanged(bool enabled);

該信號在啓用或禁用文檔打印時發出,這發生在成功加載新文檔之後,或者,例如刪除了所有內容之後。

void printStatusChanged(AbstractViewer::PrintStatus status);

在開始打印過程後,這個信號通知打印過程中的變化。

void documentLoaded(const QString &fileName);

此信號通知應用程序文檔已成功加載。

TxtViewer類

TxtViewer是一個簡單的文本查看器,繼承自AbstractViewer,它支持編輯文本文件、複製/剪切和粘貼、打印和保存更改。

JsonViewer類

JsonViewer在QTreeView中顯示JSON文件,在內部,它將文件的內容加載到QJsonDocument中,並使用它來使用JsonItemModel填充自定義樹模型。

JSON查看器插件演示瞭如何實現繼承自QAbstractItemModel的自定義項模型,JsonTreeItem類提供了一個基本的API,用於操作JSON數據並將其傳播回底層的QJsonDocument。

JsonViewer使用文檔的頂級對象作爲導航的書籤,其他節點(鍵和值)可以作爲附加書籤添加,也可以從書籤列表中刪除。QLineEdit用作在JSON樹中導航的搜索字段。

PdfViewer類

PdfViewer類(和插件)是PDF Viewer小部件示例的分支,它演示瞭如何使用qscroll平滑地瀏覽文檔。

Qt Widget組件推薦

  • QtitanRibbon - Ribbon UI組件:是一款遵循Microsoft Ribbon UI Paradigm for Qt技術的Ribbon UI組件,QtitanRibbon致力於爲Windows、Linux和Mac OS X提供功能完整的Ribbon組件。
  • QtitanChart - Qt類圖表組件:是一個C ++庫,代表一組控件,這些控件使您可以快速地爲應用程序提供漂亮而豐富的圖表。
  • QtitanDataGrid - Qt網格組件:提供了一套完整的標準 QTableView 函數和傳統組件無法實現的獨特功能。使您能夠將不同來源的各類數據加載到一個快速、靈活且功能強大的可編輯網格中,支持排序、分組、報告、創建帶狀列、拖放按鈕和許多其他方便的功能。
  • QtitanDocking:允許您像 Visual Studio 一樣爲您的偉大應用程序配備可停靠面板和可停靠工具欄。黑色、白色、藍色調色板完全支持 Visual Studio 2019 主題!
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章