更改盒子内的图像 FLTK 的问题

问题描述

我在 Fl_Box 中更改图像(Fl_PNG_图像大小 25x25[在此处输入图像描述][1])时遇到问题。

所以这是改变框的代码部分:

        if(strcmp(payload,"heat")==0) tryb_pracy_Box->image(grzanie_png);
        if(strcmp(payload,"cool")==0) tryb_pracy_Box->image(chlodzenie_png);
        tryb_pracy_Box->redraw();

然后我有一个 Fl::check();

但是当我尝试更改图像时,结果如下所示: [1][1]:https://i.stack.imgur.com/xb7by.png

据我所知,图像“出现”在标签上,但是当我尝试使用不同的对齐方式时,它没有帮助。

这是我正在处理的图像 [2][2]:https://i.stack.imgur.com/h0GVz.png [3][3]:https://i.stack.imgur.com/OS2bC.png

提前致谢!

解决方法

我发现子类化 Fl_Box 并实现(覆盖)draw 方法更容易。您可以在其中调用 fl_draw_image(...) 和 fl_draw(const char *,...)。这允许您在图像上精确指定文本的坐标,而无需调整相对于图像的对齐方式。您可以在类中存储图像指针并更改它指向的内容。