PY880 窗体设计器 – 让Python窗体GUI 开发和VB6一样简单

PY880 窗体设计器 – Python窗体GUI 开发的革命性工具

产品概述

PY880 窗体设计器是一款专为 Python GUI 窗体开发打造的可视化窗体设计工具,基于成熟的 .NET Framework 技术栈开发。它采用经典的 WinForm/VB6 设计器界面,让有 Windows 编程经验的开发者能够零基础直接上手 Python GUI 开发。熟悉vb/vba/c#窗体设计器操作的朋友,可以零基础直接上手,无需学习任何py窗体基础知识就可以快速开发出窗体GUI功能!
VB6已死,但VB6的精神不死,可视化快速拖放窗体控件,是最实用的快速开发方式,现在让他和py深入结合,可以让任何人在10分钟内学会python的窗体gui开发!

产品定位

  • ·面向对象:Python 开发者、非职业程序员、Windows 应用开发者
  • ·核心价值:填补 Python 生态环境中窗体设计工具的空白,提供类似 Visual Studio 的可视化设计体验
  • ·技术路线:使用 WinForm/VB/C# 设计器界面设计,自动生成 Python Tkinter/ttkbootstrap 窗体代码 后

解决的问题

Python GUI 开发长期以来面临以下痛点:

  1. 1.学习成本高:需要深入学习 布局管理、控件属性等复杂概念
  2. 2.调试困难:在代码中进行 UI 界面开发和调试非常繁琐,无法实时预览
  3. 3.AI 能力限制:AI 生成界面时只能得到大概框架,复杂界面和精细调整力不从心
  4. 4.工具缺失:缺乏类似 Visual Studio/VB6/VBA 的窗体可视化设计工具 有qt设计器但是对初学者并不友好
  5. 5.维护困难:界面修改需要修改大量代码,容易出错

PY880窗体设计器完美解决了这些问题,让 Python GUI 开发变得简单高效。

设计器主界面

核心特色

1. 全中文操作界面

PY880 窗体设计器提供完整的中文界面,包括:

  • ·中文化菜单栏:所有菜单项均为中文 0学习成本
  • ·中文化工具栏:工具按钮带有中文提示
  • ·中文化控件属性:控件属性以中文显示,如”文本”、”位置”、”大小”、”背景”等
  • ·中文化提示信息:操作提示、错误信息均为中文

这使得非职业程序员群体能够轻松使用,无需担心语言障碍。

2. 控件属性中文名称显示

这是 PY880 窗体设计器的一大创新。在属性面板中,所有控件属性都以中文显示,例如:

属性面板

3. UI 代码与逻辑代码分离

PY880 窗体设计器采用先进的代码生成策略:

  • ·UI 代码:自动生成的界面代码,包含所有控件的创建和布局
  • ·逻辑代码:业务逻辑代码,由开发者或 AI 编写
  • ·完全分离:两者完全独立,互不影响
  • ·可重复生成:界面修改后可重新生成 UI 代码,不会覆盖业务逻辑

这种设计特别适合长期维护的项目,界面可以反复调整而不影响业务逻辑。

4. 不影响 Python 生态

PY880 窗体设计器的设计理念是:

  • ·无需单独编译器:生成的 Python 代码可以直接运行
  • ·集成现有编辑器:支持 VS Code、Trae 等现代化编辑器
  • ·标准 Python 代码:生成的是标准的 Python Tkinter/ttkbootstrap 代码
  • ·独立运行:生成的代码不依赖设计器本身

5. 实时预览功能

设计过程中可以实时预览界面效果:

  • ·Winfrom预览:直接生成Winfrom窗体预览 可快速查看布局效果
  • ·原生 Tkinter 预览:使用原生 Tkinter 渲染
  • ·ttkbootstrap 主题预览:支持多种 ttkbootstrap 主题
  • ·即时反馈:修改属性后立即看到效果
实时预览

功能详解

1. 可视化窗体设计

拖拽式设计

从控件工具箱中拖拽控件到窗体上,即可完成控件添加:

  • · 支持所有标准控件
  • · 拖拽时显示位置提示

精准定位

  • ·智能布局辅助:显示对齐辅助线 快速对齐不用自己改坐标
  • ·多选操作:支持 Ctrl+点击多选、Shift减掉选择
  • ·框选操作:支持框选操作 支持从导航目录树选择
  • ·导航目录树选择:支持从导航目录树选择 负责布局更方便调整

多窗体支持

  • · 支持同时打开多个设计文档
  • · 支持多标签页切换
  • · 支持窗体之间的控件复制粘贴

2. 控件工具箱

控件工具箱按功能分类组织,包含丰富的控件:

容器控件

  • ·GroupBox:带标题的框架容器
  • ·Panel:无标题的框架容器
  • ·TableLayoutPanel:表格布局面板,支持行列管理
  • ·TabControl:选项卡控件,支持多标签页
  • ·SplitContainer:分割容器,支持可调整的分隔条

公共控件

  • ·Button:按钮,支持多种样式
  • ·Label:标签,用于显示文本
  • ·TextBox:单行文本框
  • ·RichTextBox:多行文本框,支持富文本
  • ·CheckBox:复选框
  • ·RadioButton:单选按钮
  • ·ComboBox:组合框,支持下拉选择
  • ·NumericUpDown:数值输入框
  • ·TrackBar:数值滑块
  • ·ProgressBar:进度条
  • ·DateTimePicker:日期选择器
  • ·ListBox:列表框
  • ·ListView:列表视图
  • ·TreeView:树形视图
  • ·DataGridView:表格组件

菜单和工具栏

  • ·MenuStrip:菜单栏
控件工具箱

3. 属性编辑面板

属性编辑面板提供全面的属性编辑功能:

属性查看

  • · 显示选中控件的所有属性
  • · 按类别组织属性(常用属性、布局、外观、行为等)

属性编辑

  • · 支持直接编辑属性值
  • · 支持下拉选择(如枚举值)
  • · 支持颜色选择器
  • · 支持字体选择器
  • · 支持图片选择器
  • · 导航目录树双击节点可直接重命名

实时预览

  • · 属性修改后立即显示效果
  • · 支持撤销/重做

Python 属性映射

属性值自动映射为 Python Tkinter/ttkbootstrap 属性,无需手动转换。

4. 控件树导航

控件树导航提供层次化的控件结构管理:
复杂布局 嵌套布局容器时显示为树形结构,方便管理

树形结构

  • · 清晰展示窗体控件层次
  • · 支持展开/折叠节点
  • · 显示中文名称

节点管理

  • ·重命名:支持双击节点弹出重命名对话库
  • ·快速定位:点击节点快速定位到控件
  • ·多选支持:支持 Ctrl+点击进行多选
  • ·搜索支持:支持 顶部模糊搜索控件


5. 高级设计功能

布局管理

对齐工具

提供多种对齐方式:

  • ·左对齐:将选中控件左对齐
  • ·右对齐:将选中控件右对齐
  • ·顶部对齐:将选中控件顶部对齐
  • ·底部对齐:将选中控件底部对齐
  • ·水平居中:将选中控件水平居中
  • ·垂直居中:将选中控件垂直居中
  • 间距调整

  • ·统一水平间距:统一选中控件的水平间距
  • ·统一垂直间距:统一选中控件的垂直间距
尺寸调整
  • ·相同宽度:将选中控件设置为相同宽度
  • ·相同高度:将选中控件设置为相同高度
  • ·相同大小:将选中控件设置为相同大小
表格布局

这是 PY880 窗体设计器的特色功能之一:

  

  

  • ·一键打包进表格:将选中的控件自动打包到 TableLayoutPanel 中
  • ·一键解包表格:将 TableLayoutPanel 中的控件解包出来
  • ·表格一键均分
    • ·水平均分:将表格的列宽度均分
    • ·垂直均分:将表格的行高度均分
    • ·全部均分:同时进行水平和垂直均分
    • ·剩余水平均分:均分剩余的列
    • ·剩余垂直均分:均分剩余的行

表格布局

表格弹性布局

PY880 窗体设计器的 TableLayoutPanel 支持强大的弹性布局功能,可以实现自适应行高列宽,并支持混合弹性布局,即部分行列固定,部分行列随窗体大小伸缩。

核心特性

  1. 1.自适应行高列宽
  • · 表格可以随窗体大小变化自动调整行高和列宽
  • · 支持百分比布局,按比例分配空间
  • · 支持自动填充剩余空间
  • 2.混合弹性布局
    • ·固定行列:可以设置某些行或列为固定大小,不随窗体变化
    • ·弹性行列:可以设置某些行或列为弹性大小,按比例伸缩
    • ·自动行列:可以设置某些行或列为自动大小,根据内容调整
  • 3.行列属性设置
    • ·Absolute:绝对大小(固定像素值)
    • ·Percent:百分比大小(按比例伸缩)
    • ·AutoSize:自动大小(根据内容调整)
    • ·SizeType:设置行列大小类型
    • ·Width/Height:设置具体的宽度或高度值
    • ·MinimumSize:设置最小尺寸限制
    • ·MaximumSize:设置最大尺寸限制

    应用场景示例

    1. 1.标准表单布局
    2. 第1行:固定高度 40px(按钮加文本框)
      第2行:自动高度(100%)
      第3行:固定高度 40px 状态栏
      第1列:固定宽度 100px(标签)
      第2列:弹性宽度(100%)
    3. 2.复杂混合布局
      第1行:固定高度 40px(工具栏)
      第2行:弹性高度 60%(主内容区)
      第3行:弹性高度 40%(详细信息区)
      第1列:固定宽度 200px(导航栏)
      第2列:弹性宽度 100%(内容区)
    4. 3.响应式布局
    5. 多行多列 自适应Flex网格布局支持

    操作方法

    1. 1.设置行列属性
    • · 在属性面板中选择 TableLayoutPanel
    • · 展开 “Rows” 或 “Columns” 属性
    • · 点击对应行或列的属性进行编辑
    • · 设置 SizeType 和 Width/Height 值
  • 2.快速设置弹性布局
    • · 右键点击 TableLayoutPanel
    • · 选择”设置弹性布局”
    • · 选择预设的布局模式或自定义配置
  • 3.一键均分
    • · 选中 TableLayoutPanel
    • · 使用工具栏的”表格均分”按钮
    • · 选择水平均分、垂直均分或全部均分

    代码生成示例

    # 生成的弹性布局代码示例
    class MainForm_UI(ttk.Window):
    def __init__(self):
    super().__init__()
    self.title("弹性布局示例")
    self.geometry("800x600")
    self.resizable(TrueTrue)

    # 创建 TableLayoutPanel
    self.tableLayoutPanel = ttk.Frame(self)
    self.tableLayoutPanel.pack(fill="both", expand=True)

    # 配置行列(弹性布局)
    self.tableLayoutPanel.grid_rowconfigure(0, weight=0)  # 固定行
    self.tableLayoutPanel.grid_rowconfigure(1, weight=1)  # 弹性行
    self.tableLayoutPanel.grid_rowconfigure(2, weight=2)  # 弹性行

    self.tableLayoutPanel.grid_columnconfigure(0, weight=1)  # 弹性列
    self.tableLayoutPanel.grid_columnconfigure(1, weight=3)  # 弹性列

    # 添加控件
    self.lblTitle = ttk.Label(self.tableLayoutPanel, text="标题")
    self.lblTitle.grid(row=0, column=0, columnspan=2, sticky="ew", pady=5)

    self.txtContent = ttk.Text(self.tableLayoutPanel)
    self.txtContent.grid(row=1, column=0, columnspan=2, sticky="nsew", padx=5, pady=5)

    self.btnOK = ttk.Button(self.tableLayoutPanel, text="确定")
    self.btnOK.grid(row=2, column=0, sticky="ew", padx=5, pady=5)

    self.btnCancel = ttk.Button(self.tableLayoutPanel, text="取消")
    self.btnCancel.grid(row=2, column=1, sticky="ew", padx=5, pady=5)

    优势

    1. 1.响应式设计:界面可以自适应不同屏幕尺寸和分辨率
    2. 2.灵活布局:支持固定、弹性、自动三种布局模式的混合使用
    3. 3.易于维护:通过可视化界面调整布局,无需手动计算坐标
    4. 4.专业效果:实现类似现代 Web 应用的响应式布局效果
    5. 5.代码简洁:生成的代码简洁清晰,易于理解和维护
    框架布局
    • ·放入框架:将选中控件放入 Panel 中
    • ·放入有标题框架:将选中控件放入 GroupBox 中
    • ·解开框架:将框架中的控件解包出来

    选择模式

    • ·单选模式:点击选择单个控件
    • ·多选模式:Ctrl+点击选择多个控件
    • ·区域选择:Shift+点击进行区域选择

    撤销/重做

    • ·撤销操作:Ctrl+Z 撤销上一步操作
    • ·重做操作:Ctrl+Y 重做被撤销的操作
    • · 支持无限级撤销/重做

    复制/粘贴/剪切/删除

    • ·复制:Ctrl+C 复制选中控件
    • ·粘贴:Ctrl+V 粘贴控件
    • ·剪切:Ctrl+X 剪切选中控件
    • ·删除:Delete 删除选中控件

    层级调整

    • ·置于顶层:将控件置于顶层
    • ·置于底层:将控件置于底层

    6. DockPanel 集成

    采用现代化的 DockPanel 布局,提供灵活的界面管理:

    • ·面板停靠:工具箱、属性面板、控件树可自由停靠到任意位置
    • ·自动隐藏:面板可设置为自动隐藏模式,节省空间
    • ·标签切换:多文档界面支持,便于切换不同设计文档
    • ·布局保存:支持保存和恢复布局配置
    • ·拖拽调整:支持拖拽调整面板大小和位置
    DockPanel 布局

    7. Python 代码生成与反向工程

    这是 PY880 窗体设计器的核心特色功能。

    代码生成

    支持的代码格式
    • ·原生 Tkinter 代码:生成标准的 Python Tkinter 代码
    • ·ttkbootstrap 代码:生成基于 ttkbootstrap 的美化界面代码
    • ·单文件模式:单独生成UI代码 不破坏业务逻辑模块
    • ·双文件模式:将 UI 代码和业务逻辑代码分离到两个文件中 用于首次生成代码
    代码生成选项
    • ·主题选择:支持多种 ttkbootstrap 主题(cosmo、flatly、journal 等)
    • ·代码格式化:自动格式化生成的代码
    • ·注释生成:自动生成代码注释
    • ·事件绑定:生成事件处理框架 事件写法秉承VB6风格!

    反向工程

    代码还原设计
    • · 从已有的 Python Tkinter 代码还原为设计文件
    • · 支持解析复杂的控件嵌套结构
    • · 支持解析控件属性和布局
    编辑器集成
    • ·VS Code 集成:支持在 VS Code 中中进行代码与设计的转换
    • ·Trae IDE 集成:支持在 Trae IDE 中进行代码与设计的转换
    • ·文件右键菜单:选中ai生成的py代码可转设计文件 选中xml设计文件可打开设计器

    UI 代码分离

    PY880 窗体设计器采用先进的 UI 代码分离策略:

    双文件模式
    • · main_ui.py:UI 代码文件,包含界面定义
    • ·main.py:主程序文件,包含业务逻辑
    可重复生成
    • · 界面修改后可重新生成 UI 代码
    • · 不会覆盖业务逻辑代码
    • · 支持增量更新

    9. 最近文件管理

    • · 自动记录最近打开的文件
    • · 支持快速打开最近文件
    • · 支持清除最近文件记录设计

    1. 不影响 Python 已有生态

    PY880 窗体设计器的设计理念是不影响 Python 生态:

    • ·无需单独编译器:生成的 Python 代码可以直接运行,无需额外编译
    • ·标准 Python 代码:生成的是标准的 Python Tkinter/ttkbootstrap 代码
    • ·独立运行:生成的代码不依赖设计器本身
    • ·无侵入性:不修改 Python 解释器或库

    2. 集成现有编辑器

    PY880 窗体设计器可以集成到现有的编辑器中:

    • ·VS Code 集成:通过扩展插件集成到 VS Code
    • ·Trae IDE 集成: 通过扩展插件 支持 Trae IDE

    3. UI 代码与逻辑代码分离

    PY880 窗体设计器采用先进的代码生成策略:

    优势

    • ·可维护性:UI 代码和业务逻辑代码分离,便于维护
    • ·可重复生成:界面修改后可重新生成 UI 代码,不影响业务逻辑
    • ·团队协作:UI 设计师和程序员可以分工协作
    • ·版本控制:UI 代码和业务逻辑代码可以独立版本控制

    实现方式

    • ·双文件模式:UI 代码和业务逻辑代码分别保存
    • ·继承机制:业务逻辑类继承 UI 类
    • ·事件绑定:在业务逻辑类中绑定事件处理

    4. 降低学习门槛

    PY880 窗体设计器的一个重要目标是降低 Python GUI 开发的学习门槛:

    传统方式的痛点

    1. 1.学习成本高:需要学习大量 Python GUI 编程知识
    2. 2.调试困难:在代码中进行 UI 界面开发和调试非常麻烦
    3. 3.AI 能力限制:AI 生成界面时只能得到大概框架,复杂界面和微调力不从心

    解决方案

    1. 1.零基础上手:使用经典的 VB6/WinForm 设计器界面
    2. 2.可视化操作:拖拽式设计,无需编写代码
    3. 3.即时反馈:实时预览效果,无需调试
    4. 4.AI 协作:结合 AI 生成初稿和人工精确调整

    5. 长期维护支持

    PY880 窗体设计器特别适合长期维护的项目:

    • ·UI 代码可重复生成:界面修改后可重新生成 UI 代码
    • ·业务逻辑不受影响:UI 代码和业务逻辑代码分离
    • ·版本控制友好:UI 代码和业务逻辑代码可以独立版本控制
    • ·团队协作友好:UI 设计师和程序员可以分工协作

    AI 协作开发

    PY880 窗体设计器特别为 AI 协作开发设计了完整的工作流程。

    工作流程

    1. AI 生成初稿

    AI 根据需求生成 Python Tkinter 界面代码,采用继承模式和中文变量命名:

    # AI 生成的 UI 基类代码 (用户登录_ui.py)
    import ttkbootstrap as ttk
    from ttkbootstrap.constants import *

    class 用户登录_UI(ttk.Window):
    """UI基类 - 只包含界面布局,不包含事件逻辑"""

    def __init__(self, themename: str = "darkly"):
    super().__init__(themename=themename)
    self.title("用户登录")
    self.geometry("394x268")
    self.resizable(FalseFalse)

    self._setup_ui()
    self._bind_events()

    def _setup_ui(self):
    """创建所有控件"""
    # 标题标签
    self.lblTitle = ttk.Label(self, text="用户登录"
                                      font=("微软雅黑"14"bold"))
    self.lblTitle.place(x=0, y=20, width=397, height=30)

    # 用户名标签
    self.lblUsername = ttk.Label(self, text="用户名:"
                                         font=("微软雅黑"10))
    self.lblUsername.place(x=60, y=80, width=80, height=25)

    # 用户名输入框
    self.txtUsername = ttk.Entry(self, font=("微软雅黑"10))
    self.txtUsername.place(x=150, y=80, width=180, height=28)

    # 密码标签
    self.lblPassword = ttk.Label(self, text="密码:"
                                         font=("微软雅黑"10))
    self.lblPassword.place(x=60, y=120, width=80, height=25)

    # 密码输入框
    self.txtPassword = ttk.Entry(self, font=("微软雅黑"10), show="*")
    self.txtPassword.place(x=150, y=120, width=180, height=28)

    # 登录按钮
    self.btnLogin = ttk.Button(self, text="登录")
    self.btnLogin.place(x=100, y=180, width=80, height=35)

    # 取消按钮
    self.btnCancel = ttk.Button(self, text="取消")
    self.btnCancel.place(x=220, y=180, width=80, height=35)

    def _bind_events(self):
    """绑定事件处理函数 - 子类可重写此方法"""
    self.btnLogin.configure(command=lambdaself.on_btnLogin_click(self.btnLogin))
    self.btnCancel.configure(command=lambdaself.on_btnCancel_click(self.btnCancel))

    # ==================== 事件处理存根 ====================

    def on_btnLogin_click(self, sender: ttk.Button):
    pass

    def on_btnCancel_click(self, sender: ttk.Button):
    pass

    2. 代码导入设计器

    将 Python 代码导入设计器,还原为可视化设计:

    • · 在IDE中选中py文件,右键选择 py窗体代码转xml

    3. 人工微调

    在可视化界面中进行精确调整和优化:

    • · 调整控件位置和大小
    • · 修改控件属性
    • · 添加删除控件
    • · 调整布局

    4. 代码生成

    生成最终的 Python Tkinter UI 代码:

    • · 选择代码格式(原生 Tkinter 或 ttkbootstrap)
    • · 选择主题(如果使用 ttkbootstrap)
    • · 选择生成模式(单文件或双文件)

    5. 业务逻辑开发

    回到 VS Code 或 Trae 等编辑器,AI 根据界面结构自主完成业务逻辑:

    # 业务逻辑代码 (用户登录.py)
    from 用户登录_ui import 用户登录_UI
    from ttkbootstrap.dialogs import Messagebox
    import ttkbootstrap as ttk

    class 用户登录(用户登录_UI):
    """
        用户登录 主窗体类
        继承自 用户登录_UI,在此实现事件处理逻辑
        """


    def __init__(self):
    super().__init__()
    self._init_data()
    self.enableEvents = True  # 全局事件开关

    def _init_data(self):
    """初始化数据和状态"""
    pass

    def _on_ui_loaded(self):
    """UI加载完成事件"""
    super()._on_ui_loaded()
    # 设置默认焦点到用户名输入框
    self.txtUsername.focus()

    # ==================== 事件处理 ====================

    def on_btnLogin_click(self, sender: ttk.Button):
    """登录按钮点击事件"""
    if not self.enableEvents:
    return

            username = self.txtUsername.get()
            password = self.txtPassword.get()

    # 验证逻辑
    if not username:
                Messagebox.show_warning("请输入用户名""提示")
    return

    if not password:
                Messagebox.show_warning("请输入密码""提示")
    return

    if username == "admin" and password == "123456":
                Messagebox.show_info("登录成功""提示")
    else:
                Messagebox.show_error("用户名或密码错误""错误")

    def on_btnCancel_click(self, sender: ttk.Button):
    """取消按钮点击事件"""
    if not self.enableEvents:
    return
    self.quit()

    if __name__ == "__main__":
        app = 用户登录()
        app.mainloop()

    6. 界面迭代

    如需修改界面,可重新回到设计器调整并重新生成 UI 代码:

    • · 打开设计文件
    • · 调整界面
    • · 重新生成 UI 代码
    • · 业务逻辑不受影响

    优势

    1. 效率提升

    • ·AI 负责代码生成:AI 可以快速生成界面代码初稿
    • ·人工负责精确调整:开发者可以在可视化界面中进行精确调整
    • ·分工明确:AI 和人工各司其职,发挥各自优势

    2. 质量保证

    • ·可视化界面确保布局精确:在可视化界面中调整,确保布局精确
    • ·实时预览:可以实时预览效果,及时发现问题
    • ·撤销/重做:支持撤销/重做,方便尝试不同方案

    3. 逻辑保护

    • ·UI 代码与业务逻辑分离:界面修改不影响业务逻辑
    • ·可重复生成:界面修改后可重新生成 UI 代码
    • ·版本控制友好:UI 代码和业务逻辑代码可以独立版本控制

    4. 协作友好

    • ·支持多种开发模式:支持 AI 生成初稿、人工微调、AI 完善逻辑等多种模式
    • ·支持多种工具链:支持 VS Code、Trae 等多种编辑器
    • ·支持团队协作:UI 设计师和程序员可以分工协作

    5. 降低门槛

    • ·利用熟悉的 WinForm 界面:有 Windows 编程经验的开发者可以零基础上手
    • ·无需学习复杂的 Python GUI 编程:可视化操作,无需编写代码
    • ·AI 辅助:AI 可以帮助完成复杂的逻辑

    Python 集成

    • ·Python:Python 3.8+
    • ·Tkinter:Python 标准 GUI 库
    • ·ttkbootstrap:Tkinter 美化库

    数据流

    用户操作 → 设计器核心 → 属性更新 → 界面刷新
               ↓
           设计文档保存
               ↓
           代码生成器 → Python 代码
               ↓
           Python 解释器 → 运行