文章目录

  • 写在前面
  • 安装与配置
    • 安装
    • 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/, 需要注意一下.

运行结果


确实不怎么好看…后续研究研究怎么美化这个界面.

使用CLion配置第一个FLTK界面相关推荐

  1. python可视化界面编程 pycharm_pycharm开发一个简单界面和通用mvc模板(操作方法图解)...

    文章首先使用pycharm的 PyQt5 Designer 做一个简单的界面,然后引入所谓的"mvc框架". 一.设计登录界面 下面开始第一个话题,使用pycharm的 PyQt5 ...

  2. clion变量配置_cygwin安装和clion配置

    1. cygwin和minGW 说到cygwin,就不得不提minGW. 二者的区别可以参考问答Cygwin 和MinGW 的区别与联系是怎样的. 其中叶王的回答足够简练和准确,能够快速帮助我们加深对 ...

  3. 即使是菜鸟,也能配置出一个网站

    对于刚进入IT行业的你,是否会觉得配置出一个像样的公司网站是很大的挑战?如果你有相同的感受,那么今天读过这篇文章之后,你的心情将会舒畅很多,因为我这名技术入门者,根据下面的方法很容易的配置出了网站,在 ...

  4. Clion配置Ros环境

    在Linux中,Clion也算是一个不错的开发IDE工具了,优点就不再赘述了. 在使用过程中尤其是发现CLion的格式化代码功能和实时代码分析功能真是太方便了,不过却不是免费的,收费大概是个人版一月5 ...

  5. 编写第一个JavaFX界面

    上一篇中我们讲到了关于Java Scene Builder2.0工具的基本使用,这一篇我们来讲讲如何利用IDEA+Java Scene Builder来写一个小界面~~~ 在之前的配置和新建FX项目博 ...

  6. 华为服务器开机显示选择一个选项,win10系统频繁出现“选择一个选项”界面的解决方法...

    运行win10电脑过程中或多或少都出现一点小问题,对于新手来说,一点小故障问题令人束手无策.近期,就有一位网友说电脑频繁出现"选择一个选项"界面,这要怎么处理?面对此故障问题,小编 ...

  7. vue 创建一个登录界面

    vue创建一个登录界面 (1)创建登录界面和主页 (2)配置路由 (3)配置main.js (4)配置App.vue (5)登录页面 (6)主页面 用到的组件 参考链接 (1)创建登录界面和主页 打开 ...

  8. Clion配置Qt+MSVC/MinGW环境

    Clion配置Qt+MSVC/MinGW环境 (正在持续更新) Clion配置Qt+MSVC/MinGW环境 1. QT中的编译器 2. 两种编译器的优势劣势 3. Clion + Qt - MSVC ...

  9. 【工具】clion配置git,fork数据结构教科书源码并clone到本地

    1. 下载地址 clion官网 git官网 项目需要的工具链 cygwin官网 源码github地址 严蔚敏 吴伟民 数据结构教程源码(代码作者:kangjianwei) 修改本机hosts的软件 ( ...

最新文章

  1. 百度15篇论文被AAAI 2019收录
  2. android 6.0 重启 丢失 壁纸,android6.0 壁纸设置流程讲解
  3. Tensorflow— word2vec
  4. java开发常用jar包_Java开发中常用jar包整理及使用
  5. ie插件获取dom_读书笔记《DOM编程艺术》DOM
  6. java第七章jdbc课后简答题_Java周测题08.13
  7. MsSql正反表达式
  8. Debug解决问题方法论
  9. pytorch/tensorflow 查看 cuda 是否可用
  10. Python中函数的形参与按值传递之间的关系
  11. 如何禁止用户安装应用程序,记下来,方便以后用
  12. spring源码 学习方法
  13. 图案怎么导入ps?Photoshop图案导入教程
  14. python调用有道翻译API进行翻译
  15. 计算机专业英文授课,计算机专业全英文授课分析
  16. 2017年是晚立秋,“秋老虎”来袭!
  17. java实现发送短信和邮箱
  18. 超市选址c语言程序,谈谈超市选址的重要性
  19. 光纤耦合系统的公差分析
  20. bluehost中国和bluehost美国的区别?应该选择哪个?

热门文章

  1. BZOJ1061 NOI2008 志愿者招募 线性规划、费用流
  2. 大量删除MySQL中的数据
  3. http参数修改以及拦截
  4. 多拉A梦——日语歌词
  5. 使用Java 8 Lambda表达式对Employee类进行操作
  6. Oracle truncate和delete的区别
  7. duilib学习领悟(2)
  8. 一个字符串排列的小算法
  9. @synthesis 使用的时候注意的地方
  10. 常见错误 不能打开注册表关键字