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

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

我正在阅读“ C ++编程原理和实践”这本书。我正在学习如何使用fltk(第12章),并且设法安装了库并编译了程序。我可以绘制基本形状并为它们上色,更改用于绘制它们的线条纹理,但是问题是我无法使文本出现在最终编译的窗口中。负责将文本输出到屏幕的“文本”功能没有任何作用。屏幕上没有文字。几何形状出现在窗口中,问题仅在于文本。当我尝试向图形添加标签时,情况也是如此。没有出现“标签”文本。其他一切都工作正常,我尝试编译基本的fltk hello,world程序。当我编译它们时,文本出现在屏幕上。

这里是代码

#include "Simple_window.h"
#include "Graph.h"
using namespace Graph_lib;

int main(){
    Point tl {100,100};
    Simple_window win {tl,600,400,"Canvas"};
    Axis xa {Axis::x, Point{20,300},280,10,"x axis"};
    win.attach(xa);
    win.set_label("Canvas#2");
    Axis ya{Axis::y, Point{20,300},280,10,"y axis"};
    ya.set_color(Color::cyan);
    ya.label.set_color(Color::dark_red);
    win.attach(ya);
    win.set_label("Canvas #3");
    Function sine{sin,0,100,Point{20,150},1000,50,50};
    win.attach(sine);
    win.set_label("Canvas#4");
    sine.set_color(Color::blue);
    Polygon poly;
    poly.add(Point{300,200});
    poly.add(Point{350,100});
    poly.add(Point{400,200});
    poly.set_color(Color::red);
    poly.set_style(Line_style::dash);
    win.attach(poly);
    Rectangle r{Point{200,200},100,50};
    win.attach(r);
    win.set_label("Canvas 6");
    Closed_polyline poly_rect;
    poly_rect.add(Point{100,50});
    poly_rect.add(Point{200,50});
    poly_rect.add(Point{200,100});
    poly_rect.add(Point{100,100});
    win.attach(poly_rect);
    poly_rect.add(Point{50,75});
    r.set_fill_color(Color::yellow);
    poly.set_style(Line_style(Line_style::dash,4));
    poly_rect.set_style(Line_style(Line_style::dash,2));
    poly_rect.set_fill_color(Color::green);
    win.set_label("Canvas 7");
    Text t{Point{150,150},"testing..."};
    win.attach(t);
    win.set_label("Canvas 8");
    win.wait_for_button();


}

Simple_window和Graph文件是本书随附的文件。这些文件利用fl_draw来“绘制”屏幕上的文本,我假设是此功能无法正常工作。我正在使用ubuntu并使用g ++编译器。

这是我当前的ouptut

c++ fltk
1个回答
1
投票

啊,问题解决了。原来,文本的默认字体大小太小,以至于肉眼看不到。我必须通过使用“ set_font_size”函数来增加文本的字体大小,然后文本才能再次显示。

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