# HiEasyX
**Repository Path**: gfigure/hi-easyx
## Basic Information
- **Project Name**: HiEasyX
- **Description**: HiEasyX 是为 EasyX 图形库设计的轻量级扩展库,旨在帮助开发者快速构建 GUI 测试界面或开发简单图形应用程序。通过即时模式(IMGUI)设计,HiEasyX 提供简洁高效的 GUI 元素管理,同时集成实用绘图辅助功能,大幅降低 EasyX 用户的上手门槛和开发成本。
- **Primary Language**: Unknown
- **License**: MIT
- **Default Branch**: main
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 25
- **Forks**: 2
- **Created**: 2025-02-09
- **Last Updated**: 2025-12-21
## Categories & Tags
**Categories**: Uncategorized
**Tags**: GUI, UI, EasyX, imgui
## README

# HiEasyX Preview
[](https://opensource.org/licenses/MIT)
[](https://gitee.com/gfigure/hi-easy-x/pulls)
[HiEasyX.cn](https://www.hieasyx.cn)
为 EasyX 图形库注入新活力!让 EasyX 使用快如闪电!
**欢迎你为我们的仓库点上一个免费的 star⭐,这将鼓舞我们继续维护开发 HiEasyX。**
欢迎加入我们的 QQ 交流群:761990769
---
> **测试阶段通知**
> 当前版本为 HiEasyX 的全新迭代版本,目前还有还有部分功能没有实现,以及官网文档内容尚未完善。正处于公开测试阶段。我们诚挚邀请您参与体验测试,任何问题或建议欢迎通过 Issues 反馈!
>
> 开发者们都是兼职开发,问题处理可能不及时。但是一般半个月内会集中处理一批问题。
## 📃介绍
HiEasyX 是一个轻量、易用的 EasyX 扩展库。它使用即时性 GUI(IMGUI)为 EasyX 提供了一个易用简单的 GUI 扩展(并且会在未来继续扩展 EasyX 的绘图、窗口功能)。它直接在指定的 EasyX 缓冲区上进行绘图操作。
HiEasyX 具有极高的灵活性。**无需对已有的 EasyX 代码做任何修改**,就可以轻松将 HiEasyX 集成在你的项目中。无需复杂的界面设计,没有复杂的接口操作,十几行代码便可以构建一个交互界面。
不论您是用于**教学演示程序构建**,还是**图形学算法快速验证**,或是将 HiEasyX 用于**你的毕业设计**当中。HiEasyX 都能成为你的一位好帮手。
HiEasyX 是自由的,HiEasyX 以 MIT 协议开源,您可以以任何目的、利益免费自由地在任何场合使用 HiEasyX。
## ✨项目特色
- **零成本集成** - 完全兼容现有 EasyX 项目,无需修改任何已有代码
- **极简 IMGUI** - 类即时模式的 GUI 设计,十几行代码构建基础界面
- **轻量易用** - 核心代码约 5000 行,无需复杂的配置过程
- **教学友好** - 特别适合图形学教学演示和算法可视化开发
- **自由开源** - MIT 协议,可免费用于商业和学术用途
- **完整的文档** - [我们的官网](https://www.hieasyx.cn/docs/%E5%BF%AB%E9%80%9F%E5%BC%80%E5%A7%8B/intro)提供了所有控件的使用说明和注意事项,并提供一个开发者友好的文档助力您的开发。
## 🚀快速开始
无需繁琐的配置编译。您可以直接将 HiEasyX 的源码直接配置到您的项目中。您只需要:
1. 克隆或下载源码
2. 添加 HiEasyX 的头文件目录
3. 引用 HiEasyX 的头文件
就可以开始使用 HiEasyX 了。
```cpp
HX::Window(HXStr("Hello World!"), windowProfile);
HX::Text(HXStr("Hello HiEasyX!"));
static int count = 0;
static HX::ButtonProfile buttonProfile;
HX::BeginSameLine();
if (HX::Button(HXStr("Hello Button"), buttonProfile)) {
++count;
}
HX::Text(HXStr("Count : ") + ToHXString(count));
HX::EndSameLine();
static HX::SliderProfile1f sliderProfile{ .MinValue = 0.f, .MaxValue = 4.f };
static float value = 0;
HX::Slider1f(HXStr("Float Slider"), value, sliderProfile);
static HX::TextInputProfile textInputProfile{ .Text = HXStr("这是一个文本输入框"), .Size = {windowProfile.Size.X - 10, 70} };
HX::TextInput(textInputProfile);
```
完整代码请查阅目录下的 `/example/EasyX/HelloWorld.cpp`。欢迎您来[我们的官网](https://hieasyx.cn/docs/%E5%BF%AB%E9%80%9F%E5%BC%80%E5%A7%8B/intro)查阅具体的入门文档
## 📚与 EasyX 无缝交互
代码目录下的 `/example/EasyX/Dashboard.cpp` 展示了 HiEasyX 是如何做到和 EasyX 的无缝交互的。您只需要在原本的 EasyX 代码基础上补充部分 HiEasyX 的代码,即可将 HiEasyX 与 EasyX 整合起来。
## 🤝问题反馈与项目贡献
如果您在使用 HiEasyX 过程中遇到了任何问题。包括但不限于 bug、文档错误或者是您使用过程中有什么不明白的地方希望得到解答。我们都十分欢迎通过 Gitee 的 Issues 板块向我们反应咨询。
## 📦兼容性
使用 HiEasyX 本体,需要您的编译器起码支持 C11 的特性(目录下的 `example` 文件中的部分样例可能需要 C20 特性)。请确保您的 EasyX 库版本起码为 `2023-7-23`。
对于 Visual Studio 用户,截至目前我们测试过 `Visual Studio 2022` 和 `Visual Studio 2019` 是可以正常使用的。更多 Visual Studio 版本的向前兼容测试正在进行中。
对于 MinGW 用户,我们的代码仓库采用 CMake 作为构建系统,您可以通过 CMake 构建出您的编译器所对应的 HiEasyX。具体步骤,请参考[我们的官网](https://hieasyx.cn/docs/%E5%BF%AB%E9%80%9F%E5%BC%80%E5%A7%8B/%E9%85%8D%E7%BD%AE%20HiEasyX/CMake%20%E9%85%8D%E7%BD%AE)。