FLTK 组最小大小
FLTK Group minimum size
使用 FLTK(版本 1.4.0),是否可以为 Fl_Group
小部件设置最小尺寸?明确地或自动地调整大小以使其不会小于显示所有子项所需的大小? Fl_Window
class 有方法 size_range
允许设置最小 window 大小,但是 Fl_Group
没有这样的方法。
如果这不可用,那么也许有一些其他方法可以强制限制非 window 组小部件的大小?
可以通过使用最顶层 window 的 size_range
方法来部分实现这一点,但是如果我们使用 Fl_Tile
则每个图块都不会受到任何限制方法。是的,Fl_Tile
内的 Fl_Box
小部件可以限制 外部 方块的最小尺寸,但这并不是我在这里需要的。
您可以覆盖 Fl_Group 小部件的调整大小方法。即使未显式调用,调整大小时也会自动触发调整大小方法。
#include <FL/Enumerations.H>
#include <FL/Fl_Double_Window.H>
#include <FL/Fl_Group.H>
#include <FL/Fl.H>
struct MyGroup : public Fl_Group {
MyGroup(int x, int y, int w, int h, const char *label = 0): Fl_Group(x, y, w, h, label) {
box(FL_ENGRAVED_FRAME);
}
virtual void resize(int x, int y, int w, int h) override {
Fl_Group::resize(x, y, w, h);
if (w < 300 || h < 200) {
resize(x, y, 300, 200);
}
}
};
int main() {
Fl_Double_Window w(400, 300);
MyGroup g(20, 20, 360, 260);
w.end();
w.resizable(&w);
w.show();
return Fl::run();
}
您会注意到 window 是可以调整大小的,如果您尝试减小它的大小,群组小部件只会缩小到某个点。
使用 FLTK(版本 1.4.0),是否可以为 Fl_Group
小部件设置最小尺寸?明确地或自动地调整大小以使其不会小于显示所有子项所需的大小? Fl_Window
class 有方法 size_range
允许设置最小 window 大小,但是 Fl_Group
没有这样的方法。
如果这不可用,那么也许有一些其他方法可以强制限制非 window 组小部件的大小?
可以通过使用最顶层 window 的 size_range
方法来部分实现这一点,但是如果我们使用 Fl_Tile
则每个图块都不会受到任何限制方法。是的,Fl_Tile
内的 Fl_Box
小部件可以限制 外部 方块的最小尺寸,但这并不是我在这里需要的。
您可以覆盖 Fl_Group 小部件的调整大小方法。即使未显式调用,调整大小时也会自动触发调整大小方法。
#include <FL/Enumerations.H>
#include <FL/Fl_Double_Window.H>
#include <FL/Fl_Group.H>
#include <FL/Fl.H>
struct MyGroup : public Fl_Group {
MyGroup(int x, int y, int w, int h, const char *label = 0): Fl_Group(x, y, w, h, label) {
box(FL_ENGRAVED_FRAME);
}
virtual void resize(int x, int y, int w, int h) override {
Fl_Group::resize(x, y, w, h);
if (w < 300 || h < 200) {
resize(x, y, 300, 200);
}
}
};
int main() {
Fl_Double_Window w(400, 300);
MyGroup g(20, 20, 360, 260);
w.end();
w.resizable(&w);
w.show();
return Fl::run();
}
您会注意到 window 是可以调整大小的,如果您尝试减小它的大小,群组小部件只会缩小到某个点。