如何使用 fltk 使一个点出现?

     2023-02-21     144

关键词:

【中文标题】如何使用 fltk 使一个点出现?【英文标题】:How to make a point appear using fltk? 【发布时间】:2019-04-07 01:34:03 【问题描述】:

在创建了一个窗口并在其中绘制了一些形状之后,我意识到我不能提出一个点,只是将它显示在窗口上。我已经搜索了手册,但我无法从中做出任何事情。我使用的是 fltk 1.3.0。我该怎么做?

【问题讨论】:

【参考方案1】:

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();

但是作为一个忠告,直接在窗口上绘制单个点很少是明智的做法。大多数情况下,绘制图像/缓冲区然后显示它们是更好的选择。

编辑:

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

#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_currentin the manual的免责声明

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

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

【讨论】:

我需要写一个类来表示点吗?我不能直接进入 main() 并直接这样做吗?我试图阅读手册并找到示例,但我无法完全理解所有这些是如何工作的,是否容易给我任何来源? 源代码下载包含所有示例。绘图函数以及它们可以在is well documented 中使用的上下文。我在 main 中添加了一个带有绘图代码的示例。【参考方案2】:

根据之前对这个问题的回答,我在文档中找到了这个:

fl_begin_points() 开始绘制点列表。 使用 fl_vertex() 将点添加到列表中

所以这是一些显示一些要点的代码(我添加了更多以真正看到要点):

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

class Drawing : public Fl_Window 
    void draw()
        fl_begin_points();
        //adding cushion to points to be able to see them.
        //center at 10,10
        fl_vertex(9,9);
        fl_vertex(9,10);
        fl_vertex(9,11);
        fl_vertex(10,9);
        fl_vertex(10,10);
        fl_vertex(10,11);
        fl_vertex(11,9);
        fl_vertex(11,10);
        fl_vertex(11,11);
        fl_end_points();

        fl_color(FL_BLACK);
    
    public:
     Drawing(int w, int h, const char *l = 0) : Fl_Window(w, h, l)

;

int main(int argc, char **argv)

    Fl_Window *window = new Drawing(340,180);
    window->end();
    window->show(argc, argv);
    return Fl::run();

【讨论】:

如何在 Ubuntu 下使用 FLTK 编译

】如何在Ubuntu下使用FLTK编译【英文标题】:HowtocompilewithFLTKunderUbuntu【发布时间】:2014-09-0920:19:42【问题描述】:我在Ubuntu12.04LTS下使用Code:blocks。我正在尝试使用FLTK编译我的第一个程序,但出现以下错误。Linkingconsoleexecutable:bin/... 查看详情

如何对 FLTK 中的小部件进行排序以使箭头键导航正常工作?

】如何对FLTK中的小部件进行排序以使箭头键导航正常工作?【英文标题】:HowtosortwidgetsinFLTKforarrowkeynavigationtowork?【发布时间】:2014-03-1917:02:31【问题描述】:FLTK文档说:箭头、tab和shift+tab键“导航”选择。向左、向右、制表... 查看详情

使用 FLTK API,如何找到全屏高度?

】使用FLTKAPI,如何找到全屏高度?【英文标题】:UsingFLTKAPI,howtofindthefullscreenheight?【发布时间】:2013-11-1203:01:01【问题描述】:Fl::h()不包括底部任务栏的高度。我在FL_Window中有一个Fl_Double_Window。在我使用fullscreen()方法使外窗口... 查看详情

使用 fltk 时文本未出现在编译窗口中

...】:我正在阅读《C++编程原理与实践》一书。我正在学习如何使用fltk(第12章),并且我已经成功地安装了库并编译了程序。我可以绘制基本形状并为其着色,更改用于绘制它们的线条纹理,但是,问题是我无法让文本出现在最... 查看详情

如何使图例出现在情节上但不绘制相关点

】如何使图例出现在情节上但不绘制相关点【英文标题】:Howtomakealegendappearonplotlybutnotplottheassociatedpoints【发布时间】:2021-12-2717:42:03【问题描述】:我有一个情节,我只想渲染图例,但没有情节点。谁能告诉我怎么做?library(ti... 查看详情

如何在 FLTK 中对两个不同的小部件同时使用键盘箭头和鼠标单击?

】如何在FLTK中对两个不同的小部件同时使用键盘箭头和鼠标单击?【英文标题】:HowcanIusebothkeyboardarrowsandmouseclicksfortwodifferentwidgetsinFLTK?【发布时间】:2016-12-0603:13:11【问题描述】:我正在使用带有C++的FLTK编写一个程序来滚动... 查看详情

如何使用代码块安装 fltk

】如何使用代码块安装fltk【英文标题】:howtoinstallfltkwithcodeblocks【发布时间】:2013-11-0508:59:54【问题描述】:我在代码块中选择了新的FLTK项目。我为该项目选择了一个名称,后来它询问我具有FLTK的文件夹的位置。我将它指向我... 查看详情

如何构建 FLTK 以与 Netbeans (Windows) 一起使用

】如何构建FLTK以与Netbeans(Windows)一起使用【英文标题】:HowtobuildFLTKtousingwithNetbeans(Windows)【发布时间】:2010-10-0806:32:03【问题描述】:,我尝试过但没有成功。帮帮我【问题讨论】:【参考方案1】:你遇到了什么问题,什么编... 查看详情

如何将 fltk 文件与其他文件一起编译?

】如何将fltk文件与其他文件一起编译?【英文标题】:Howtocompilefltkfilewithotherfiles?【发布时间】:2011-05-2321:25:04【问题描述】:我有一个使用fltk类的gui窗口,当我自己编译它时可以正常工作。为此,我使用-fltk-config--compileguiwindo... 查看详情

如何使用 Stroustrup 的 Fltk Text 类调用变量?

】如何使用Stroustrup的FltkText类调用变量?【英文标题】:HowtocallavariableusingStroustrup\'sFltkTextclass?【发布时间】:2017-07-2222:47:43【问题描述】:我想在窗口上创建一个文本。我正在使用Stroustrup编程网站上的内置FLTK和GUIC++库。他内... 查看详情

如何在 C++ 和 FLTK 中实现倒计时时钟?

】如何在C++和FLTK中实现倒计时时钟?【英文标题】:HowtoimplementacountdownclockinC++andFLTK?【发布时间】:2015-08-1601:58:09【问题描述】:我使用ProgrammingwithC++中的FLTK和Gui库创建了一个小游戏,我想使用倒计时时钟计时器。FLTK有Fl::add_t... 查看详情

如何在 FLTK 中编写面板任务栏以在 Linux 系统上使用

】如何在FLTK中编写面板任务栏以在Linux系统上使用【英文标题】:HowdoIwriteanpaneltaskbarinFLTKforuseonLinuxsystems【发布时间】:2011-05-2715:49:22【问题描述】:我需要用C/C++编写一个小应用程序来实现一个面板任务栏,比如在桌面窗口(... 查看详情

Fltk 窗口等待

...题描述】:C++fltk:我有一个带有in_box和out_box的窗口,我如何制作它以便用户可以在in_box中键入回车,然后继续进行其余的事件。现在,窗口刚刚出现并消失。Windoww(Point(100,100),200,200,"CategorySales");In_boxcat_in(Point(75,75),10 查看详情

如何在 Ubuntu 中使用 g++ 编译 fltk 程序?

】如何在Ubuntu中使用g++编译fltk程序?【英文标题】:HowcanIcompileafltkprogramusingg++inUbuntu?【发布时间】:2011-05-2419:56:26【问题描述】:直截了当的问题。几个小时以来,我一直在寻找和尝试很多东西。我见过的一些例子需要X11R6,... 查看详情

我如何拆分 fltk 代码和定义

】我如何拆分fltk代码和定义【英文标题】:howdoisplitupfltkcodeanddefinitions【发布时间】:2021-05-2222:58:06【问题描述】:这是我的第一个C++项目。我有1600行代码,大部分在使用FLTK小部件的包含文件中,我想按照我经常看到的推荐方... 查看详情

如何使用单选检查使 div 出现和消失? [复制]

】如何使用单选检查使div出现和消失?[复制]【英文标题】:HowcanIanimateadivtoappearanddisappearusingaradiocheck?[duplicate]【发布时间】:2020-07-2518:38:28【问题描述】:所以我正在制作一个在线表单并添加了两个单选按钮,我希望在单击第... 查看详情

如何使用 QScrollArea 使滚动条出现

】如何使用QScrollArea使滚动条出现【英文标题】:HowtouseQScrollAreatomakescrollbarsappear【发布时间】:2021-12-2217:13:54【问题描述】:我正在尝试使用pyqt5创建一个具有垂直布局的滚动区域,并且我正在放置一些标签。我知道,即使它是... 查看详情

如何在 MinGW 中使用 FLTK 1.1 dll?

】如何在MinGW中使用FLTK1.1dll?【英文标题】:HowtouseFLTK1.1dllinMinGW?【发布时间】:2011-08-0917:00:08【问题描述】:我正在尝试使用使用fltk库的MinGW编译项目。每当它使用fltk访问文件时,它都会告诉我“找不到-lfltk”。我知道这归结... 查看详情