# PyQtDom
**Repository Path**: zhiyang/py-qt-dom
## Basic Information
- **Project Name**: PyQtDom
- **Description**: No description available
- **Primary Language**: Unknown
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2022-02-07
- **Last Updated**: 2025-12-04
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# 简介
使用mvvmQt可以方便的使用jinja2的模板创建Qt界面,并且提供了mvvm的方式来进行数据操作和展示,提高开发速度。
# 控件
## 1. 窗体
### Widget、Window
> 使用Widget可以创建一个普通窗体,Window则在Widget的基础上提供更好的可视化操作,使用<widget></widget>或<window></window>表示。
#### examples/window/templates/index.jinja2
```html
```
#### examples/window/app.py
```python
from mvvmQt.Parser import Parser
import os
if __name__ == "__main__":
p = Parser(os.path.abspath("%s/../" % __file__))
p.build()
p.run()
```
## 2. 布局
### 网格布局
> 使用网格布局的作用相同于QGridLayout, 使用<grid></grid>表示,行则用<row></row>表示,列则用<col></col>表示,通过在col添加span属性表示跨多少列,添加offset属性表示偏移多少列,rowSpan属性表示跨多少行,rowOffset属性表示偏移多少行。
#### examples/grid/templates/index.jinja2
```html
```
#### examples/grid/app.py
```python
from mvvmQt.Parser import Parser
import os
if __name__ == "__main__":
p = Parser(os.path.abspath("%s/../" % __file__))
p.build()
p.run()
```
### 横/纵向布局
> 使用横/纵向布局可以方便的将布局下的控件自动按横/纵向布局排版,横向布局使用<hbox></hbox>,纵向布局使用<vbox></vbox>
#### example/box/templates/index.jinja2
```html
{% for i in range(5) %}
{% endfor %}
{% for i in range(5) %}
{% endfor %}
```
#### examples/box/app.py
```python
from mvvmQt.Parser import Parser
import os
if __name__ == "__main__":
p = Parser(os.path.abspath("%s/../" % __file__))
p.build()
p.run()
```
### 常用控件
> 以下例子展示常用控件
#### examples/controls/templates/index.jinja2