如何使用fltk显示一个观点?

问题描述 投票:-1回答:1

在创建一个窗口并在其中绘制一些形状后,我意识到我无法指出并将其显示在窗口上。我搜索了手册,但我无法从中获取任何东西。我使用fltk 1.3.0。我该怎么做 ?

c++ fltk
1个回答
0
投票

Fltk附带了一些有用的示例项目。如果你看一下line_style示例,你可以很容易地将它缩小为绘制点的东西:

#include <FL/Fl.H>
#include <FL/Fl_Window.H>
#include <FL/fl_draw.H>

class TestWindow : public Fl_Window {
    void draw()
    {
        fl_color(255, 0, 0);
        fl_begin_points();
        fl_point(50, 50);
        fl_point(51, 51);
        fl_end_points();
    }
public:
    TestWindow(int w, int h, const char *l = 0)
        : Fl_Window(w, h, l) {}
};

int main(int argc, char ** argv) {
    Fl_Window *window = new TestWindow(200, 200);
    window->end();
    window->show(argc, argv);
    return Fl::run();
}

但就像建议一样,直接在窗口上绘制单点很少是明智之举。在大多数情况下,绘制到图像/缓冲区然后显示它们是更好的选择。

编辑:

这是将绘图代码放在main函数中的示例。

#include <FL/Fl.H>
#include <FL/Fl_Window.H>
#include <FL/fl_draw.H>

class TestWindow : public Fl_Window {
    void draw() {}
public:
    TestWindow(int w, int h, const char *l = 0) : Fl_Window(w, h, l) {}
};

int main(int argc, char ** argv) {
    Fl_Window *window = new TestWindow(200, 200);
    window->end();
    window->show(argc, argv);
    window->make_current();
    fl_color(255, 0, 0);
    fl_begin_points();
    fl_point(50, 50);
    fl_point(51, 51);
    fl_end_points();

    return Fl::run();
}

您应该注意make_current in the manual的免责声明

危险:增量更新很难调试和维护!

除了将它用于简单的练习之外,这些都不是好习惯。

© www.soinside.com 2019 - 2024. All rights reserved.