gpt4 book ai didi

c++ - FLTK 框元素在窗口中不可见

转载 作者:太空狗 更新时间:2023-10-29 21:10:44 29 4
gpt4 key购买 nike

我是 C++ 的初学者,正在学习 Stroustrup 的 - Programming Principles and Practice using C++。第12章介绍了显示模型,任务是在系统上安装并运行FLTK。

我安装了 FLTK,可以毫无问题地编译这两个测试程序。但是一旦我运行它,只有窗口被绘制但没有框和文本是可见的。

测试程序.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 启动可执行文件时,弹出的窗口在这两种情况下看起来都像这样,没有可见的框。我错过了什么?

enter image description here

由于我对主题知之甚少,所以我很乐意接受任何想法、提示和指示。非常感谢您。

最佳答案

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

根据 fltk.general Google 组的说法,Apple 在 OSX Mojave (10.14) 中更改了在屏幕上绘图的调用逻辑 (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. 清理
  5. ./configure
  6. 制作
  7. sudo make install
  8. 版本检查:fltk-config --version 应该是 1.4.x

关于c++ - FLTK 框元素在窗口中不可见,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53136185/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com