2025-03-19 23:25:36 +08:00
|
|
|
#include <FL/Fl.H>
|
|
|
|
#include <FL/Fl_Box.H>
|
2025-03-19 23:50:09 +08:00
|
|
|
#include <FL/Fl_Button.H>
|
2025-03-19 23:25:36 +08:00
|
|
|
#include <FL/Fl_Pack.H>
|
|
|
|
#include <FL/Fl_Window.H>
|
|
|
|
|
|
|
|
int demo1(int argc, char** argv)
|
|
|
|
{
|
|
|
|
// 创建主窗口
|
|
|
|
Fl_Window* window = new Fl_Window(800, 600, "FLTK 上下布局示例");
|
|
|
|
window->color(FL_WHITE);
|
|
|
|
|
|
|
|
// 创建一个垂直排列的 Fl_Pack 容器
|
|
|
|
Fl_Pack* vpack = new Fl_Pack(0, 0, 800, 600);
|
|
|
|
vpack->type(Fl_Pack::VERTICAL); // 设置为垂直布局
|
|
|
|
vpack->spacing(10); // 设置子部件之间的间距
|
|
|
|
|
|
|
|
// 上部分内容
|
|
|
|
Fl_Box* top_box = new Fl_Box(0, 0, 800, 300, "上部分");
|
|
|
|
top_box->box(FL_UP_BOX);
|
|
|
|
top_box->color(FL_BLUE);
|
|
|
|
top_box->labelsize(24);
|
|
|
|
top_box->labelcolor(FL_WHITE);
|
|
|
|
|
|
|
|
// 下部分内容
|
|
|
|
Fl_Box* bottom_box = new Fl_Box(0, 0, 800, 300, "下部分");
|
|
|
|
bottom_box->box(FL_UP_BOX);
|
|
|
|
bottom_box->color(FL_GREEN);
|
|
|
|
bottom_box->labelsize(24);
|
|
|
|
bottom_box->labelcolor(FL_WHITE);
|
|
|
|
|
|
|
|
// 结束 Fl_Pack 容器
|
|
|
|
vpack->end();
|
|
|
|
|
|
|
|
// 设置窗口的布局容器
|
|
|
|
window->end();
|
|
|
|
window->resizable(vpack); // 使布局随窗口缩放
|
|
|
|
window->show(argc, argv);
|
|
|
|
|
|
|
|
// 运行事件循环
|
|
|
|
return Fl::run();
|
|
|
|
}
|
|
|
|
|
2025-03-19 23:50:09 +08:00
|
|
|
int demo2()
|
|
|
|
{
|
|
|
|
auto* dialog = new Fl_Window(300, 100);
|
|
|
|
auto* icon = new Fl_Box(0, 0, 50, 50, "!");
|
|
|
|
auto* text = new Fl_Box(50, 0, 250, 40, "Out of Memory Error");
|
|
|
|
auto* btns = new Fl_Group(50, 50, 250, 50); // parent group
|
|
|
|
auto* darn = new Fl_Button(200, 50, 100, 50, "Darn!");
|
|
|
|
auto* R = new Fl_Box(50, 50, 150, 50); // "invisible" box "R"
|
|
|
|
R->hide(); // make sure it's invisible
|
|
|
|
btns->resizable(R); // make "R" parent group resizable
|
|
|
|
btns->end();
|
|
|
|
dialog->resizable(darn);
|
|
|
|
dialog->end();
|
|
|
|
dialog->show();
|
|
|
|
// 运行事件循环
|
|
|
|
return Fl::run();
|
|
|
|
}
|
|
|
|
|
2025-03-19 23:25:36 +08:00
|
|
|
int main(int argc, char** argv)
|
|
|
|
{
|
2025-03-19 23:50:09 +08:00
|
|
|
// demo1(argc, argv);
|
|
|
|
demo2();
|
2025-03-19 23:25:36 +08:00
|
|
|
}
|