# XmlPy **Repository Path**: ks-studio/xml-py ## Basic Information - **Project Name**: XmlPy - **Description**: 实现xml语言编程Python的界面设计 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-07-03 - **Last Updated**: 2026-01-29 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # XmlPy 用户手册 https://github.com/kaishistudio/XmlPy > 📘 完整的XmlPy框架使用指南 --- ## 📖 目录 1. [简介](#1-简介) 2. [安装与配置](#2-安装与配置) 3. [快速入门](#3-快速入门) 4. [XML语法详解](#4-xml语法详解) 5. [控件详解](#5-控件详解) 6. [事件处理](#6-事件处理) 7. [高级功能](#7-高级功能) 8. [实战案例](#8-实战案例) 9. [最佳实践](#9-最佳实践) 10. [故障排除](#10-故障排除) 11. [API参考](#11-api参考) 12. [常见问题](#12-常见问题) --- ## 1. 简介 ### 1.1 什么是XmlPy? XmlPy是一个基于XML的Python GUI框架,它允许开发者使用XML来定义图形用户界面,而不需要编写大量的Tkinter代码。 ### 1.2 核心特性 - ✅ **XML驱动** - 使用XML定义界面,代码更清晰 - ✅ **控件丰富** - 支持按钮、标签、输入框等多种控件 - ✅ **易于维护** - 界面与逻辑分离,便于修改 - ✅ **快速开发** - 减少重复代码,提高开发效率 - ✅ **灵活布局** - 支持绝对定位和嵌套布局 - ✅ **事件绑定** - 简单的事件处理机制 ### 1.3 适用场景 - 🎯 桌面应用程序开发 - 📊 数据可视化工具 - 🧮 计算器和小工具 - 🎮 简单的游戏界面 - 📝 表单和数据录入应用 --- ## 2. 安装与配置 ### 2.1 系统要求 - Python 3.6 或更高版本 - Tkinter(通常随Python一起安装) - 操作系统:Windows、macOS、Linux ### 2.2 安装步骤 #### 步骤1:获取代码 ```bash git clone https://github.com/your-username/xml-py.git cd xml-py/Code ``` #### 步骤2:验证安装 ```python # 测试导入 from XmlPy import * print("XmlPy导入成功!") ``` ### 2.3 目录结构 ``` xml-py/ ├── Code/ │ ├── XmlPy.py # 框架核心文件 │ ├── README.md # 项目说明 │ ├── USER_MANUAL.md # 用户手册(本文件) │ └── examples/ # 示例代码 │ ├── hello_world.py │ ├── calculator.py │ └── ... ``` --- ## 3. 快速入门 ### 3.1 第一个程序:Hello World #### Python代码 ```python from XmlPy import * def say_hello(widget=None): print("Hello, XmlPy!") global_commands = { 'say_hello': say_hello } xml_content = """ """ XmlInit_string(xml_content, global_commands) ``` #### 运行结果 运行程序后,将显示一个窗口,包含一个标签和一个按钮。点击按钮会在控制台输出"Hello, XmlPy!"。 ### 3.2 从文件加载XML #### 创建XML文件(hello.xml) ```xml ``` #### Python代码 ```python from XmlPy import * def say_hello(widget=None): print("Hello, XmlPy!") global_commands = { 'say_hello': say_hello } XmlInit_Path('hello.xml', global_commands) ``` --- ## 4. XML语法详解 ### 4.1 XML结构 #### 格式1:Window作为根元素(推荐) ```xml ``` #### 格式2:Root包裹Window(兼容旧版本) ```xml ``` ### 4.2 Window属性 | 属性 | 类型 | 必需 | 说明 | 示例 | |------|------|------|------|------| | title | 字符串 | 否 | 窗口标题 | `title="我的应用"` | | geometry | 字符串 | 否 | 窗口大小 | `geometry="800x600"` | | bg | 颜色 | 否 | 背景颜色 | `bg="#2c3e50"` | | minsize | 字符串 | 否 | 最小尺寸 | `minsize="400x300"` | | maxsize | 字符串 | 否 | 最大尺寸 | `maxsize="1200x900"` | | resizable | 布尔 | 否 | 是否可调整大小 | `resizable="true,true"` | | iconbitmap | 路径 | 否 | 窗口图标 | `iconbitmap="icon.ico"` | ### 4.3 通用属性 所有控件都支持以下属性: | 属性 | 说明 | 示例 | |------|------|------| | id | 控件唯一标识符 | `id="btn1"` | | x | X坐标 | `x="10"` | | y | Y坐标 | `y="20"` | | bg | 背景颜色 | `bg="#3498db"` | | fg | 前景颜色(文字颜色) | `fg="white"` | | font | 字体设置 | `font="Arial 12"` | | width | 宽度 | `width="10"` | | height | 高度 | `height="2"` | ### 4.4 颜色格式 #### 十六进制颜色 ```xml ``` #### 完整属性 | 属性 | 说明 | 默认值 | |------|------|--------| | text | 按钮文字 | "Button" | | width | 宽度 | 10 | | height | 高度 | 1 | | bg | 背景颜色 | 系统默认 | | fg | 文字颜色 | 系统默认 | | font | 字体 | 系统默认 | | relief | 边框样式 | "raised" | | cursor | 鼠标样式 | 系统默认 | | state | 状态 | "normal" | #### 事件 ```xml ``` #### Python代码 ```python def on_click(widget=None): print("单击事件") def on_double_click(widget=None): print("双击事件") def on_right_click(widget=None): print("右键点击事件") global_commands = { 'on_click': on_click, 'on_double_click': on_double_click, 'on_right_click': on_right_click } ``` ### 5.2 Label(标签) #### 基本用法 ```xml