跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客GitHub 精选镜像工具UI配色美学隐私政策关于联系
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
PythonAI

Python GUI 框架 DearPyGui 介绍与使用

DearPyGui 是一款基于 GPU 加速的高性能 Python GUI 框架,采用即时模式设计,支持跨平台开发。其核心特点、安装方法、基础组件使用(如按钮、文本、绘图)、主题定制及适用场景。示例涵盖 Hello World、事件响应、动态更新及数据可视化,适合科学计算、机器学习面板及实时监控系统开发。

SecGuard发布于 2026/3/26更新于 2026/5/2330 浏览

一、核心特点

  • GPU 加速:基于 ImGui 和自定义 Vulkan/OpenGL 后端,渲染性能极高。
  • 即时模式 GUI:UI 逻辑与程序逻辑混合编写,每次帧刷新都重新构建界面,状态由用户变量控制。
  • 原生 Python 接口:无需 XML 或模板文件,全部用 Python 编写。
  • 跨平台:支持 Windows、macOS、Linux。
  • 丰富的组件:按钮、滑块、表格、绘图、3D 渲染、文件对话框、主题定制等。
  • 与 NumPy 高度兼容:特别适合科学计算和数据可视化。

二、安装

pip install dearpygui

三、基础使用示例

1. 最简 Hello World
import dearpygui.dearpygui as dpg

dpg.create_context()
dpg.create_viewport(title="Hello World", width=400, height=300)
dpg.setup_dearpygui()
with dpg.window(label="Main Window"):
    dpg.add_text("Hello, Dear PyGui!")
    dpg.add_button(label="Click me")
dpg.show_viewport()
dpg.start_dearpygui()
dpg.destroy_context()
2. 响应按钮点击
def button_callback():
    print("Button clicked!")

with dpg.window():
    dpg.add_button(label="Say Hello", callback=button_callback)
3. 动态更新文本
def update_text():
    dpg.set_value("text_id", f"Count: {dpg.get_value('slider_id')}")

with dpg.window():
    dpg.add_slider_int(tag="slider_id", label="Value", default_value=0, max_value=100, callback=update_text)
    dpg.add_text(, tag=)
"Count: 0"
"text_id"

四、常用组件

组件函数
按钮dpg.add_button()
文本输入dpg.add_input_text()
滑块dpg.add_slider_float(), dpg.add_slider_int()
复选框dpg.add_checkbox()
表格dpg.add_table(), dpg.add_table_column(), dpg.add_table_row()
绘图dpg.add_plot(), dpg.add_line_series()
文件选择dpg.add_file_dialog()

五、绘图示例(Plotting)

import numpy as np
x = np.linspace(0, 10, 100).tolist()
y = np.sin(x).tolist()

with dpg.window():
    with dpg.plot(label="Sin Wave", height=300, width=500):
        dpg.add_plot_axis(dpg.mvXAxis, label="x")
        with dpg.plot_axis(dpg.mvYAxis, label="sin(x)"):
            dpg.add_line_series(x, y, label="sin(x)")

六、主题与样式

dpg.bind_theme(dpg.mvTheme_Dark)  # 内置暗色主题
# 或自定义主题
with dpg.theme() as custom_theme:
    with dpg.theme_component(dpg.mvButton):
        dpg.add_theme_color(dpg.mvThemeCol_Button, (0, 150, 0))
dpg.bind_theme(custom_theme)

七、适用场景

  • 科学计算参数调优界面
  • 机器学习实验控制面板
  • 实时数据监控(如传感器、仿真)
  • 游戏/图形工具原型
  • 教学演示工具

八、注意事项

  • 即时模式 ≠ 保留模式:每次 start_dearpygui() 循环都会重新执行 UI 代码,不要在 UI 构建中做耗时操作。
  • 状态管理:所有状态需由 Python 变量维护(如 dpg.get_value(tag) / dpg.set_value(tag, value))。
  • 性能优势:即使每秒更新数千个控件,依然流畅(得益于 GPU 渲染)。

九、官方资源

  • 官网:https://dearpygui.org/
  • GitHub:https://github.com/hoffstadt/DearPyGui
  • 文档:https://dearpygui.readthedocs.io/
  • 示例库:https://github.com/hoffstadt/DearPyGui/tree/master/DearPyGui/dearpygui/demo.py(运行 dpg.show_demo() 可查看)

目录

  1. 一、核心特点
  2. 二、安装
  3. 三、基础使用示例
  4. 1. 最简 Hello World
  5. 2. 响应按钮点击
  6. 3. 动态更新文本
  7. 四、常用组件
  8. 五、绘图示例(Plotting)
  9. 六、主题与样式
  10. 或自定义主题
  11. 七、适用场景
  12. 八、注意事项
  13. 九、官方资源
  • 💰 8折买阿里云服务器限时8折了解详情
  • Magick API 一键接入全球大模型注册送1000万token查看
  • 🤖 一键搭建Deepseek满血版了解详情
  • 一键打造专属AI 智能体了解详情
极客日志微信公众号二维码

微信扫一扫,关注极客日志

微信公众号「极客日志V2」,在微信中扫描左侧二维码关注。展示文案:极客日志V2 zeeklog

更多推荐文章

查看全部
  • 栈的压入弹出序列判断算法详解
  • AIGC 背景下图文内容社区数据指标体系构建指南
  • Ollama 模型管理、删除及 Open WebUI 部署指南
  • 利用 DeepSeek API 构建贪吃蛇游戏的技术实践
  • DSO.ai:Synopsys 基于 AI 的搜索优化型 EDA 工具解析
  • YOLOv8 OBB 旋转目标检测 RK3588 C++ 部署:模型转换与推理优化
  • Python 获取飞书文档内容
  • 自然语言处理在金融领域的应用与实战
  • Visual C++ 运行库详解与常见问题解决方案
  • 全网最牛批的前端面试八股文(最全)堪称2025最强!
  • Unreal Engine 4.27 结合 AirSim 搭建无人机仿真环境及场景配置
  • 安路科技 TD 开发工具全流程使用指南
  • 解决 Copilot 与 Codex 修改代码时中文乱码的自动化方案
  • 学生与教育工作者免费获取 GitHub Copilot 权限指南
  • Java 中 RestTemplate 高效发送 HTTP 请求
  • GitHub 教育认证指南:VS Code 与 Copilot 权益获取
  • VSCode Copilot 配置文件提示警告分析与解决
  • 基于 FPGA 的多层感知机设计与逻辑门实现指南
  • TurboDiffusion 部署教程:从源码编译到 WebUI 访问完整流程
  • Docker 部署开源蜜罐 Cowrie

相关免费在线工具

  • RSA密钥对生成器

    生成新的随机RSA私钥和公钥pem证书。 在线工具,RSA密钥对生成器在线工具,online

  • Mermaid 预览与可视化编辑

    基于 Mermaid.js 实时预览流程图、时序图等图表,支持源码编辑与即时渲染。 在线工具,Mermaid 预览与可视化编辑在线工具,online

  • 随机西班牙地址生成器

    随机生成西班牙地址(支持马德里、加泰罗尼亚、安达卢西亚、瓦伦西亚筛选),支持数量快捷选择、显示全部与下载。 在线工具,随机西班牙地址生成器在线工具,online

  • curl 转代码

    解析常见 curl 参数并生成 fetch、axios、PHP curl 或 Python requests 示例代码。 在线工具,curl 转代码在线工具,online

  • Base64 字符串编码/解码

    将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online

  • Base64 文件转换器

    将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online