文章目录
- 写在前面
- 安装与配置
- 安装
- helloworld
- 配置命令行
- 配置CLion
- 运行结果
写在前面
假期抽时间学习一下跨平台GUI界面的开发, 正好也当做C++的练手小项目了. C++标准库中没有对于GUI的支持, 需要依赖三方库, 这里我先想到的是老牌跨平台GUI——Qt, 但是作为一个小项目感觉使用Qt有点小题大做, 后来看到FLTK这个跨平台的图形库, 感觉可以研究一番. 体积小, 跨平台, 编译速度快, 是个不错的选择. 缺点也有, 就是界面比较丑, 社区也不是很活跃, 但是好在最新版本是几个月前的, 所以也可以研究一下.
官网:Fast Light Toolkit - Fast Light Toolkit (FLTK);
官方文档: FLTK 1.3.6: FLTK Programming Manual.
官方文档PDF: FLTK 1.3.6 Programming Manual;
其他资源:
一个罗列FLTK常用代码段的网站: Erco’s FLTK Cheat Page (seriss.com).
安装与配置
运行环境:
macOS 11.4
homebrew Apple Silicon
安装
直接终端输入:
brew install fltk
即可完成安装, Windows下可能需要编译安装.
终端输入:
~ → fltk-config --version
1.3.6
即为安装成功.
helloworld
下面是一个简单的FLTK程序的示例, 用于输出Hello world.
#include <iostream>
#include <FL/Fl.H>
#include <FL/Fl_Window.H>
#include <FL/Fl_Box.H>int main (int argc, char *argv[]) {Fl_Window *window;Fl_Box *box;window = new Fl_Window(300, 180);window->label("HelloWorld!");box = new Fl_Box(20, 40, 260, 100, "Hello World!");box->box(FL_UP_BOX);box->labelsize(36);box->labelfont(FL_BOLD + FL_ITALIC);(FL_SHADOW_LABEL);window->end();window->show(argc, argv);return Fl::run();
}
配置命令行
命令行直接使用fltk-config --compile yourfilename.cpp
即可快速生成.app
文件, 还是很方便的, 但是还得需要个趁手的IDE才行. 一开始我想用已经熟悉的Sublime, 但是其对C/C++的补全和格式化等支持的不够好,思考再三, 我决定选用CLion(一年免费教育体验真香).
配置CLion
这里走了一些弯路, 由于之前没接触过cmake, 在命令行下编译成功的例子来到CLion这里就不行了, 后来逐渐摸索出了成功构建的配置方式.
参考官方文档, 采用标准编译的命令是这样的:
g++ main.cpp -I/opt/homebrew/include -L/opt/homebrew/lib -lfltk -lXext -lX11 -lm
于是, 在CMakeLists.txt中, 这样配置:
cmake_minimum_required(VERSION 3.19)
project(fltk_proj)# 设置C++标准
set(CMAKE_CXX_STANDARD 11)# 相当于gcc `-I`参数
include_directories("/opt/homebrew/include")
# 相当于gcc `-L`参数
link_directories("/opt/homebrew/lib")
# 相当于gcc `-l`参数
link_libraries("fltk")
link_libraries("Xext")
link_libraries("X11")
link_libraries("m")# 添加可执行程序
add_executable(test1 main.cpp)
里面的参数设置都对应了gcc的参数, 这里注意头文件和链接库的目录是/opt/homebrew/
, Intel版Mac的话应该是/usr/local/
, 需要注意一下.
运行结果
确实不怎么好看…后续研究研究怎么美化这个界面.