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

Python GUI 框架 DearPyGui 介绍与使用

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

SecGuard发布于 2026/3/26更新于 2026/7/2558 浏览

一、核心特点

  • 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. 九、官方资源
  • 免费图片AI生成工具免费生成了解详情
  • Magick API 一键接入全球大模型注册送1000万token查看
  • 免费图片视频在线生成30秒,将你的创意变成现实开始设计
  • X/Twitter免费视频下载器免登陆无限额度免费视频解析下载了解详情
  • 100+免费在线小游戏爽一把
极客日志微信公众号二维码

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

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

更多推荐文章

查看全部
  • 基于 Milvus 与混合检索的云厂商文档智能问答系统:Java SpringBoot 实践
  • Zotero 本地 AI 文献助手:RAG 检索增强与 MCP 协议集成实战
  • Claude Code 在 Linux(Ubuntu) 上的完整安装部署指南
  • OpenCode:开源 AI 编程智能体,支持多模型与远程协作
  • MuJoCo 足式机器人强化学习:URDF 转 XML 配置指南
  • IMDB 情感分类实战:Word2Vec + 逻辑回归完整解析
  • DeepSeek 各版本说明与优缺点分析
  • AI 时代,为何架构师反而更稀缺了?
  • 给本地 AI 助手装「超级插件市场」:OpenClaw 技能实战指南
  • 机器人系统设计核心:从架构拆解到工程落地实践
  • MiniMax 海螺 AI 视频:图片与文本生成高质量视频
  • Ubuntu 22.04 基于 ROS2 Humble 的 PX4 无人机仿真环境搭建
  • 算法基础:前缀和技巧与区间求和优化
  • AI 编程工具收费模式变革:Token 计费时代的开发者生存指南
  • 基于 Vue3 与 Spring Boot 的若依框架快速搭建指南
  • OpenClaw 网关与子节点配对指南:构建分布式 AI 助手网络
  • Java 可执行 JAR 包打包:三种 Maven 方案对比
  • WebGIS 视角下的省域区县天气可视化实战攻略
  • SmolVLA 高算力适配:TensorRT 加速可行性分析与 ONNX 导出实操
  • MySQL 数据库基础入门:从概念到实战

相关免费在线工具

  • 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