Qt 5模型/檢視結構
Qt引入了模型/檢視結構用於完成資料與介面的分離,即InterView框架。Qt的InterView框架把檢視和控制器部件結合在一起,是的框架更為簡潔。為了靈活地處理輸入,InterView框架引入了代理(Delegate)。通過使用代理,能夠自定義資料條目(Item)的顯示與編輯。
Qt的模型/檢視結構分為三部分:模型(Model)、檢視(View)和代理(Delegate)。其中,
- 模型與資料來源通訊,併為其他部件提供介面;
- 檢視從模型中獲得用來引用資料條目的模型索引(Model Index)。
- 在檢視中,代理負責繪製資料條目,當編輯條目時,代理和模型直接進行通訊。
模型/檢視/代理之間通過訊號和槽進行通訊,如圖所示。
- 資料發生改變時,模型發出訊號通知檢視。
- 使用者對介面進行操作,檢視發出訊號。
- 代理髮出訊號告知模型和檢視編輯器目前的狀態。
1.模型(Model)
InterView框架中的所有模型都基於抽象基類QAbstractItemModel,此類由QProxyModel、QAbstractListModel、QAbstractTableModel、QAbstractProxyModel、QDirModel、QFileSystemModel、QHelpContentModel和QStandardItemModel類繼承。其中,QAbstractListModel類和QAbstract TableModel類是列表和表格模型的抽象基類,如果需要實現列表或表格模型,則應從這兩個類繼承。完成QStringList儲存的QStringListModel類繼承自QAbstractListModel類,而與資料庫有關的QSqlQueryModel類繼承自QAbstractTableModel類;QAbstractProxyModel類是代理模型的抽象類;QDirModel類是檔案和目錄的儲存模型。
2.檢視(View)
InterView框架中的所有檢視都基於抽象基類QAbstractItemView,此類由QColumnView、QHeaderView、QListView、QTableView和QTreeView類繼承。其中,QListView類由QUndoView類和QListWidget類繼承;QTableView類由QTableWidget類繼承;QTreeView類由QTreeWidget類繼承。而QListWidget類、QTableWidget類和QTreeWidget類實際上已經包含了資料,是模型/檢視整合在一起的類。
3.代理(Delegate)
InterView框架中的所有代理都基於抽象基類QAbstractItemDelegate,此類由QItemDelegate和 QStyledItemDelegate類繼承。其中,QItemDelegate類由表示資料庫中關係代理的QSqlRelationalDelegate類繼承。
相關文章
- Oracle常用檢視錶結構命令Oracle
- gdb golang 檢視iface 內部結構Golang
- Linux 下樹形結構的檢視Linux
- Qt Quick 訊息列表檢視元件QTUI元件
- QT: 操作主從檢視及XMLQTXML
- AndroidStudio資料夾結構檢視講解Android
- Adaptive AUTOSAR 學習筆記 5 - 架構 - 物理檢視APT筆記架構
- 「模型解讀」歷數GAN的5大基本結構模型
- 因果模型:邊緣結構模型MSM模型
- Qt5MV自定義模型與例項淺析QT模型
- drf : 通用檢視類和(GenericAPIView)5個檢視擴充套件類,九個檢視子類,檢視集。APIView套件
- drf檢視類總結
- pytorch模型結構視覺化,可顯示每層的尺寸PyTorch模型視覺化
- [20231026]bbed檢視索引kd_off結構的問題.txt索引
- 【MEMORY】Oracle記憶體結構資源常用檢視及sqlOracle記憶體SQL
- VideoPipe視覺化影片結構化框架更新總結(2023-12-5)IDE視覺化框架
- YOLOv5模型訓練及檢測YOLO模型
- Qt5&OpenCV3.2 Canny邊緣檢測+Hough變換QTOpenCV
- Go Qt5 建立空白視窗、視窗居中及關閉視窗事件GoQT事件
- 看得見的資料結構Android版之陣列表(檢視篇)資料結構Android陣列
- LLDebugTool - 便捷的IOS除錯工具(增加檢視結構和放大鏡)iOS除錯
- Qt開發技術:圖形檢視框架(一)基本介紹QT框架
- Stata實現結構方程模型模型
- 如何檢視tensorflow SavedModel格式模型的資訊模型
- Yolov5——訓練目標檢測模型YOLO模型
- QT視窗類QT
- ThinkPHP 5 模型使用歷程 - 小結PHP模型
- ClickHouse 物化檢視學習總結
- Django REST framework API 指南(5):檢視集DjangoRESTFrameworkAPI
- 檢視jks檔案的MD5
- [提問交流]onethink 外掛不支援檢視模型?模型
- 建築師結構遊戲關卡——以等角檢視探討《Block’hood》遊戲BloC
- 文件管理 | 文件目錄結構和檔案情況的檢視與匯出
- CNN結構演變總結(一)經典模型CNN模型
- qt5亂碼QT
- 檢視結果樹之篩選器
- thinkphp6 檢視問題總結PHP
- Sqlserver資料庫郵件的體系結構及常用的查詢檢視SQLServer資料庫