FLTK 框元素在 window 中不可见
FLTK box element not visible in window
我是 C++ 的初学者,正在学习 Stroustrup 的 - 使用 C++ 的编程原则和实践。在第 12 章中,介绍了显示模型以及在系统上安装和 运行 FLTK 的任务。
我安装了 FLTK 并且可以毫无问题地编译这两个 test_programs。但是一旦我 运行 它,只有 window 被绘制但没有框和文本可见。
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();
}
FLTK 在 OSX 10.14 (Mojave) 和 XCode 10.1(已安装命令行工具)上的安装过程:
- 已安装 brew(https://brew.sh/)
- 已安装 FLTK
brew install FLTK
- 运行
fltk-config --compile test_program.cpp
- 已启动可执行文件
据我所知,所有文件似乎都在正确的位置。
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 启动可执行文件时,window 弹出,在这两种情况下看起来都像这样,没有可见的框。我错过了什么?
由于我对主题知之甚少,我很乐意接受任何想法、提示和指示。提前谢谢你。
使用 fltk-1。4.x-r13107 解决了问题。
根据fltk.generalGoogle组,随着OSXMojave(10.14),Apple改变了在屏幕上绘图的调用逻辑(source)。
对于所有刚接触 c++ 和 fltk 且不习惯手动安装软件的人来说,这对我有用:
- 从 http://www.fltk.org/software.php
下载最新的 fltk-1。4.x 版本
tar -zxvf fltk-1.4.x-r13107.tar.gz
cd fltk-1.4.x-r13107
make clean
./configure
make
sudo make install
- 版本检查:
fltk-config --version
应该是 1.4.x
我是 C++ 的初学者,正在学习 Stroustrup 的 - 使用 C++ 的编程原则和实践。在第 12 章中,介绍了显示模型以及在系统上安装和 运行 FLTK 的任务。
我安装了 FLTK 并且可以毫无问题地编译这两个 test_programs。但是一旦我 运行 它,只有 window 被绘制但没有框和文本可见。
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();
}
FLTK 在 OSX 10.14 (Mojave) 和 XCode 10.1(已安装命令行工具)上的安装过程:
- 已安装 brew(https://brew.sh/)
- 已安装 FLTK
brew install FLTK
- 运行
fltk-config --compile test_program.cpp
- 已启动可执行文件
据我所知,所有文件似乎都在正确的位置。 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 启动可执行文件时,window 弹出,在这两种情况下看起来都像这样,没有可见的框。我错过了什么?
由于我对主题知之甚少,我很乐意接受任何想法、提示和指示。提前谢谢你。
使用 fltk-1。4.x-r13107 解决了问题。
根据fltk.generalGoogle组,随着OSXMojave(10.14),Apple改变了在屏幕上绘图的调用逻辑(source)。
对于所有刚接触 c++ 和 fltk 且不习惯手动安装软件的人来说,这对我有用:
- 从 http://www.fltk.org/software.php 下载最新的 fltk-1。4.x 版本
tar -zxvf fltk-1.4.x-r13107.tar.gz
cd fltk-1.4.x-r13107
make clean
./configure
make
sudo make install
- 版本检查:
fltk-config --version
应该是 1.4.x