Python-MVVM
这是一个用 Python 实现的极简 MVVM 示例项目。它通过“发布-订阅”模式实现 Model 与 View 的数据绑定,并用 PyQt5 做了一个日志窗口 demo。
项目结构
Python-MVVM-master/
├── framework.py # 可单独复制使用的 MVVM 小框架
├── demo/
│ ├── start_up.py # demo 程序入口
│ ├── design/
│ │ ├── main_win.ui # Qt Designer 原始界面文件
│ │ └── main_win.py # 由 .ui 生成的 Python 界面代码
│ └── mvvm/
│ ├── framework.py # demo 内使用的框架代码
│ ├── model.py # Model 层
│ ├── view.py # View 层
│ ├── view_model.py # ViewModel 层
│ └── binder.py # 绑定 View 与 ViewModel
└── docs/
└── MVVM学习教程.md # 详细学习文档/课件
运行 demo
进入 demo 目录运行:
python start_up.py
如果提示缺少 PyQt5,需要先安装:
pip install PyQt5
核心思想
MVVM 的目标是让 View 不直接处理业务逻辑,让 ViewModel 不直接操作界面控件。 本项目中,一次按钮点击的大致流程是:
用户点击按钮
-> PyQt clicked 信号
-> ViewModel.event_log_yes/event_log_no
-> 修改 StringModel.value
-> Model 发布 log_to_view 事件
-> EventChannel 分发事件
-> LogView.signal_proxy 刷新 QTextBrowser
详细讲解见 docs/MVVM学习教程.md。
Description
Languages
Python
100%