FLTK框元素在窗口中不可见

时间:2018-11-03 22:47:52

标签: c++ fltk

我是C ++的初学者,并通过Stroustrup的《使用C ++的编程原理和实践》进行研究。在第12章中,介绍了显示模型,其任务是在系统上安装和运行FLTK。

我安装了FLTK,可以毫无问题地编译两个test_programs。但是一旦运行它,就只会绘制窗口,而看不到任何框和文本。

test_program.cpp

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

int main() 
{
  Fl_Window window(200, 200, "FLTK");
  Fl_Box box(0,0,200,200,"Hey, this is FLTK!");
  window.show();
  return Fl::run();
}

test_program2.cpp:

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

int main(int argc, char **argv)
{
  Fl_Window *window = new Fl_Window(340,180);
  Fl_Box *box = new Fl_Box(20,40,300,100,"Hello, World!");
  box->box(FL_UP_BOX);
  box->labelfont(FL_BOLD+FL_ITALIC);
  box->labelsize(36);
  box->labeltype(FL_SHADOW_LABEL);
  window->end();
  window->show(argc, argv);
  return Fl::run();
}

在带有XCode 10.1(已安装命令行工具)的OSX 10.14(Mojave)上用于FLTK的安装过程:

  1. 已安装的brew(https://brew.sh/
  2. 已安装FLTK brew install FLTK
  3. 运行fltk-config --compile test_program.cpp
  4. 启动的可执行文件

据我所知,所有文件似乎都放在正确的位置。 由fltk-config提供的clang ++命令(未提供错误或警告):

clang++ -I-I/usr/local/Cellar/fltk/1.3.4-2/include -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_THREAD_SAFE -D_REENTRANT -g -o ../a test_program.cpp /usr/local/Cellar/fltk/1.3.4-2/lib/libfltk.a -lpthread -framework Cocoa

当我使用./a启动可执行文件时,该窗口会弹出,并且在两种情况下都看起来像这样,没有可见的框。我想念什么?

enter image description here

凭借对主题的一点了解,我对任何想法,提示和指示感到高兴。提前非常感谢您。

1 个答案:

答案 0 :(得分:3)

使用fltk-1.4.x-r13107解决了该问题。

根据fltk.general的Google组,在OSX Mojave(10.14)中,Apple更改了在屏幕(source)上绘制的调用逻辑。

对于所有不熟悉c ++和fltk的人,并且不习惯手动安装软件的人,这对我有用:

  1. http://www.fltk.org/software.php下载最新的fltk-1.4.x版本
  2. tar -zxvf fltk-1.4.x-r13107.tar.gz
  3. cd fltk-1.4.x-r13107
  4. make clean
  5. ./configure
  6. make
  7. sudo make install
  8. 版本检查:fltk-config --version应该为1.4.x
相关问题