Skip to main content

基于模型-视图的控件

模型/视图简介

基于模型/视图的控件采用了数据与显示相分离的技术。这种技术起源于Smalltalk的设计模式—Model/View/Controller(MVC,模型/视图/控制器),一般应用在显示界面的程序中。与前者不同,PySide6主要采用了Model/View/Delegate(模型/视图/代理)框架,简称为Model/View框架。

Model/View/Delegate框架

image-20250418211028217

在Model/View/Delegate框架中,使用数据模型(Model)从数据源(Data)中读、写数据,使用视图控件(View)显示数据模型中获取的数据。如果用户要编辑数据,则可以使用代理控件(Delegate)编辑或修改数据,并将修改后的数据传递给数据模型(Model),PySide6的视图控件提供了默认的代理控件,例如QTableView中提供了QLineEdit编辑框,所以Model/View/Delegate可以简写为Model/View框架。

在PySide6中,数据模型、视图控件、代理控件通过信号/槽机制进行通信。

数据模型视图

image-20250418225720399

image-20250418225741409