基于EasyX的C++ GUI框架 给课程设计/小工具/小游戏做图形界面
easyx吧
全部回复
仅看楼主
level 4

之前接一些课设的单子或者想做个小工具,直接用Win32 API比较麻烦,引入Qt这类大框架又有点重。
所以,我基于EasyX写了一个轻量级的C++ GUI框架,叫 星垣 (StellarX),现在开源出来,或许能帮到有类似需求的同学。
这个框架主要想解决几个问题:
轻量,无依赖:核心库就1MB多,编译完的程序很小,适合小工具。
和EasyX无缝衔接:底层渲染直接用的EasyX,可以直接在你的图形程序里嵌入UI。
代码结构清晰:采用面向对象设计,每个控件的逻辑都比较独立,适合想了解GUI怎么实现的新手看源码。
常用的控件都有:按钮、标签、文本框、表格、对话框这些基本的都实现了。
目前实现的功能看下图(效果截图):
用起来也比较简单,几行代码就能加个按钮:
#include "StellarX.h"
int WINAPI WinMain(...)
{ // 创建一个窗口 Window mainWindow(640, 480, 0, WHITE, "测试窗口");
// 创建一个按钮 auto button = std::make_unique<Button>(250, 200, 140, 40, "测试按钮");
button->setOnClickListener([]() { // 点击按钮后的逻辑 outtextxy(50, 50, _T("按钮被点击了")); }); // 添加到窗口并运行
mainWindow.addControl(std::move(button));
mainWindow.draw();
mainWindow.runEventLoop();
return 0;
}
适合什么情况用?
新手刚入门,整天面对命令行觉得没意思,想做个图形界面玩的
给课程设计、毕业设计加一个简单的图形界面。
快速开发一些自用的Windows小工具。
对GUI实现原理感兴趣,想找一个代码简单易懂的项目来学习。
项目放在GitHub上了,文档和示例都写得比较详细,MIT协议,大家可以随意使用。
项目地址:https://github.com/Ysm-04/StellarX
如果这个项目正好能帮到你,或者你觉得有点意思,欢迎去点个Star,也非常欢迎提Issue和反馈。
2025年09月22日 12点09分 1
level 4
已经打包了lib,在release下载压缩包就能用
2025年09月22日 12点09分 2
level 7
或许你可以尝试重写EasyX,让它支持窗口拉伸,还有改成单线程执行。
2025年09月22日 13点09分 3
改一下initgraph就好了[呵呵][呵呵]
2025年09月23日 05点09分
@天水二院院长 要改的地方太多了,我用win32+OpenGL重写,事件改成了继承窗口类,重写函数,比如virtual void onClose(); 最麻烦的就是putimage,要把坐标参数换算,然后填充到缓冲区里
2025年09月23日 17点09分
@内个小谁 不用改,在外面用句柄修改一下就好了,然后做一下适配,我在做控件自动适配大小,马上就好了[呵呵][呵呵]
2025年09月23日 18点09分
1