Qt 是目前最先進、最完整的跨平臺C++開發工具。它不僅完全實現了一次編寫,所有平臺無差別運行,更提供了幾乎所有開發過程中需要用到的工具。如今,Qt已被運用於超過70個行業、數千家企業,支持數百萬設備及應用。
文檔查看器是一個顯示和打印JSON、文本和PDF文件的Widgets應用程序。Document Viewer(文檔查看器)演示瞭如何使用帶有靜態和動態工具欄、菜單和操作的QMainWindow,此外它還演示了基於小部件的應用程序中的以下特性:
- 使用QSettings查詢和保存用戶參數,並管理以前打開的文件歷史記錄。
- 控制光標懸停在小部件上時的操作。
- 創建動態加載的插件。
在上文中(點擊這裏回顧>>)主要介紹了創建一個應用程序和主窗口的一些類,本文將繼續介紹一些其他類,請持續關注哦~
創建一個應用程序和主窗口
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 主題!