【问题标题】:FLTK box element not visible in windowFLTK 框元素在窗口中不可见
【发布时间】:2019-04-07 17:42:31
【问题描述】:

我是 C++ 的初学者,正在阅读 Stroustrup 的 - Programming Principles and Practice using 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();
}

在 OSX 10.14 (Mojave) 和 XCode 10.1 上用于 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 启动可执行文件时,会弹出窗口,在两种情况下都像这样,没有可见的框。我错过了什么?

由于我对主题的了解很少,我对任何想法、提示和指针都很满意。非常感谢您。

【问题讨论】:

  • 你可以试试这个box-&gt;set_active(); box-&gt;show() box-&gt;fontcolor(FL_WHITE);,看看它是否改变了什么。
  • 我在 FLTK 1.3.4 中添加了box-&gt;set_active(); box-&gt;show();,似乎没有字体颜色,所以我设置了box-&gt;color(FL_WHITE)。但结果没有任何改变。但仍然没有警告或错误。
  • 似乎适用于 1.3.4

标签: c++ fltk


【解决方案1】:

使用 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

【讨论】:

  • 看起来这里也有一个自制水龙头:github.com/gtDMMB/homebrew-core 所以它可以用$ brew install --build-from-source gtDMMB/core/fltkwithcairo安装
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-12-29
  • 1970-01-01
  • 1970-01-01
  • 2019-05-28
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多