FLTK Fl_File_Chooser的使用

默认的Fl_File_Chooser的界面是这样的。

可以构造函数参数可以选择单个文件、多个文件、文件夹以及创建新文件。

如何获取选择的(多个)文件,需要写Fl_File_Chooser的回调函数。

//下标是从1开始的,使用0开始的下标也不报错,看到官方文档的实例代码才找到原因
void FileChooser_cb(Fl_File_Chooser* fc, void* data)
{for (int i = 1; i <= fc->count(); i++){const char* currentFilename = fc->value(i);cout << currentFilename << endl;}
}
****构造函数****
第一个参数是默认路径,第二个参数是过滤器filter 可以用 | 增加其他文件拓展名,,第三个参数  选择单个文件SINGLE,多个文件MULTI,创建CREATE,文件夹(存在,一个)DIRECTORY
//main函数
int main(int argc, char* argv[])
{Fl_File_Chooser fc(".", "TIF (*.tif)", Fl_File_Chooser::MULTI,"File Chooser");fc.callback(FileChooser_cb);fc.show();return Fl::run();
}

如何得到选择的文件名困扰了我许久,仔细研究实例代码终于发现端倪。
Chooser不能直接返回选中的文件名,这里指点击确定按钮后。如果使用上面的回调函数,寻找文件过程中点到的其他文件夹或者误点的其他文件,文件名都被会被 value 函数返回,这样就没办法判断自己选中的文件名了。
得到最终选定的文件名,需要配合 visible 函数使用。

void show_callback(void)
{int    i;          // Looping varint   count;          // Number of files selectedchar relative[FL_PATH_MAX];  // Relative filenameif (filter->value()[0])fc->filter(filter->value());fc->show();//精髓就在这里while (fc->visible()) {Fl::wait();}count = fc->count();if (count > 0){files->clear();for (i = 1; i <= count; i ++){if (!fc->value(i))break;fl_filename_relative(relative, sizeof(relative), fc->value(i));files->add(relative,Fl_File_Icon::find(fc->value(i), Fl_File_Icon::PLAIN));}files->redraw();}
}

上面是demo的源码,等到Chooser隐藏起来,再来获取选中的文件名。

FLTK Fl_File_Chooser的使用相关推荐

  1. 2001年的FLTK设置教程

    FLTK 1.3已经编译完成,ide目录下有VC的编译文件,编译前增加FL目录为include目录即可. 编译时出错,提示offset重复定义,这是因为vc6的C++不标准引起的,定义int i后把o ...

  2. 在redhat9中交叉编译nano-X nxlib和fltk

    来自:http://tauruspdj.blog.163.com/blog/static/4312500620080279183197/ 1)编译nano-X(即microwindows-0.91) ...

  3. 使用CLion配置第一个FLTK界面

    文章目录 写在前面 安装与配置 安装 helloworld 配置命令行 配置CLion 运行结果 写在前面 假期抽时间学习一下跨平台GUI界面的开发, 正好也当做C++的练手小项目了. C++标准库中 ...

  4. fltk在UbuntuLinux中搭建和测试-《C++程序设计原理与实践》Chapter12:显示模型 环境构建...

    ====================Step1==================== 在Windows下参看 http://www.cnblogs.com/vincentfon/archive/ ...

  5. FLTK的UI设计工具FLUID使用方法总结

    tags: FLTK C++ GUI 写在前面 终于又捡起来FLTK了, 先来看看怎么通过FLUID创建一个图形界面并完成回调函数的创建, 参考的是官方教程中关于创建一个CubeView程序的例子, ...

  6. 在FLTK中使用OpenGL的正确姿势(MacOS)

    tags: FLTK C++ Tips 写在前面 最近想捡起来之前曾经浅尝辄止的一个C++图形库FLTK, 一些简单的项目做起来还是很趁手的, 但是到了OpenGL这里就显得有点复杂了, 由于对cma ...

  7. FLTK 重写Fl_Button回调

    众所周知,FLTK的回调只能有一个,其他的需要重写handle(),所以我打算直接重写handle(),制作多个回调 #include <FL/Fl.H> #include <FL/ ...

  8. VS2017下安装fltk库——C++程序设计原理与实践图形编程指南

    VS2017下安装fltk库--C++程序设计原理与实践图形编程指南 前言 最近,我在学习<C++程序设计原理与实践>(原书第一版)遇到了安装图形库的问题,我花了两天时间,通过各种途径查找 ...

  9. 浅谈如何fltk项目编译和实现显示中文

    目录 一.编译 二.中文显示如何处理: 2.1在发文2天前突然发现,我这个界面显示英文出现问题了,开始我的搜索之旅,一些参考页面有碰到问题也可以看看: 2.2. 那就开始翻翻官方自带的例程吧,看看他如 ...

  10. fltk教程01-基础

    ==========20090511更新====================== #include <fltk/Window.h>#include <fltk/Widget.h& ...

最新文章

  1. JavaScript初学者编程题(17)
  2. IT从花钱到赚钱——惠普IT转型记
  3. 2022 年第一场云原生技术实践营开启报名
  4. 计算机对英语口语考试成绩,英语口语考试人机对话得分技巧
  5. 如何将JBoss HR员工奖励项目放入云端
  6. css 属性名 查询表
  7. sybase 连接mysql_安装sybase服务器并连接数据库
  8. 如何检测浏览器所支持的最小字体大小
  9. 蓝桥杯c语言基础试题答案,蓝桥杯试题C语言答案.doc
  10. Linux内核数据结构之哈希表
  11. 地心一号-基于STM8的超迷你自平衡小车-DIY套件
  12. App登录方式和测试重点总结
  13. 软件架构之分层模式 Layered Architecture
  14. windows利用diskpart格式化磁盘
  15. 【 FlutterUnit 食用指南】 开源篇
  16. 七剑下天山,独领自动化测试技术
  17. 【网络摘录】Google网页搜索技巧
  18. 关于stm32的VCP技术原理
  19. 深度学习之(DNN)深度神经网络
  20. Typora使用快捷键

热门文章

  1. c语言函数定义的语法格式,C语言函数 -C语言函数定义的语法格式
  2. 自学JAVA的十大网站你都知道那些
  3. 自制宿舍门禁,微信小程序蓝牙控制,比指纹更安全~
  4. 一文全记录斐讯K3刷机+打印服务器+私人云盘+frp内网穿透+ftp远程上传下载
  5. 微信小程序富文本插件WxParse使用
  6. 面试(软件实施工程师)
  7. windows计算器_计算Windows计算器中的错误
  8. bodymovin导出没有html5,Bodymovin导出Json文件避坑指南
  9. 唧唧Down(B站视频下载) 彻底解决你的B站视频下载问题
  10. java循环遍历map集合_Java中遍历Map集合的四种方法