Egrome:基于EGE的图形界面应用程序框架

Egrome是一个基于EGE的开源图形应用程序框架,目前基于EGE20.08

Egrome的使用方式有点类似于Qt,通过如下方式就可以创建一个基本的1000×600的应用程序窗口

#include<egrome/App>
#include<egrome/Block>

int main(){
    Block block{Rect{0,0,1000,600}};
    App app{&block};
    app.run();
    return 0;
}

也可以通过继承Block来实现自定义内容,框架内也提供了一些已经封装好的控件(如按钮、文本标签、单选框、复选框等)

以下是Github仓库中用于调试和测试单选框控件的代码:

#include "radiobox.h"
#include "App.h"

class Window : public Block
{
    RadioBox *radiobox1;
    RadioBox *radiobox2;
    RadioBox *radiobox3;

    RadioBoxGroup *radioboxgroup;

public:
    Window(const Rect &rect) : Block(rect)
    {
        radioboxgroup = new RadioBoxGroup();

        radiobox1 = new RadioBox(Rect(10, 10, 100, 20), *radioboxgroup, this);
        radiobox1->setText(L"RadioBox1");
        radiobox2 = new RadioBox(Rect(10, 40, 100, 20), *radioboxgroup, this);
        radiobox2->setText(L"RadioBox2");
        radiobox3 = new RadioBox(Rect(10, 70, 100, 20), *radioboxgroup, this);
        radiobox3->setText(L"RadioBox3");

        radiobox1->selectedChanged.connect(
            [this](bool selected)
            { std::cout << "RadioBox1 selected: " << selected << std::endl; });
        radiobox2->selectedChanged.connect(
            [this](bool selected)
            { std::cout << "RadioBox2 selected: " << selected << std::endl; });
        radiobox3->selectedChanged.connect(
            [this](bool selected)
            { std::cout << "RadioBox3 selected: " << selected << std::endl; });
       
    }
    ~Window()
    {
        delete radioboxgroup;
        delete radiobox1;
        delete radiobox2;
        delete radiobox3;
    }
};

int main()
{
    Window window(Rect(0, 0, 1000, 800));
    App app{&window};
    app.run();
    return 0;
}

上述代码中类Window通过继承Block类实现了自定义功能

前往项目主页Github仓库了解更多