FLTK Fl_File_Chooser的使用
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的使用相关推荐
- 2001年的FLTK设置教程
FLTK 1.3已经编译完成,ide目录下有VC的编译文件,编译前增加FL目录为include目录即可. 编译时出错,提示offset重复定义,这是因为vc6的C++不标准引起的,定义int i后把o ...
- 在redhat9中交叉编译nano-X nxlib和fltk
来自:http://tauruspdj.blog.163.com/blog/static/4312500620080279183197/ 1)编译nano-X(即microwindows-0.91) ...
- 使用CLion配置第一个FLTK界面
文章目录 写在前面 安装与配置 安装 helloworld 配置命令行 配置CLion 运行结果 写在前面 假期抽时间学习一下跨平台GUI界面的开发, 正好也当做C++的练手小项目了. C++标准库中 ...
- fltk在UbuntuLinux中搭建和测试-《C++程序设计原理与实践》Chapter12:显示模型 环境构建...
====================Step1==================== 在Windows下参看 http://www.cnblogs.com/vincentfon/archive/ ...
- FLTK的UI设计工具FLUID使用方法总结
tags: FLTK C++ GUI 写在前面 终于又捡起来FLTK了, 先来看看怎么通过FLUID创建一个图形界面并完成回调函数的创建, 参考的是官方教程中关于创建一个CubeView程序的例子, ...
- 在FLTK中使用OpenGL的正确姿势(MacOS)
tags: FLTK C++ Tips 写在前面 最近想捡起来之前曾经浅尝辄止的一个C++图形库FLTK, 一些简单的项目做起来还是很趁手的, 但是到了OpenGL这里就显得有点复杂了, 由于对cma ...
- FLTK 重写Fl_Button回调
众所周知,FLTK的回调只能有一个,其他的需要重写handle(),所以我打算直接重写handle(),制作多个回调 #include <FL/Fl.H> #include <FL/ ...
- VS2017下安装fltk库——C++程序设计原理与实践图形编程指南
VS2017下安装fltk库--C++程序设计原理与实践图形编程指南 前言 最近,我在学习<C++程序设计原理与实践>(原书第一版)遇到了安装图形库的问题,我花了两天时间,通过各种途径查找 ...
- 浅谈如何fltk项目编译和实现显示中文
目录 一.编译 二.中文显示如何处理: 2.1在发文2天前突然发现,我这个界面显示英文出现问题了,开始我的搜索之旅,一些参考页面有碰到问题也可以看看: 2.2. 那就开始翻翻官方自带的例程吧,看看他如 ...
- fltk教程01-基础
==========20090511更新====================== #include <fltk/Window.h>#include <fltk/Widget.h& ...
最新文章
- 关于Java性能监控您不知道的5件事
- loginButton.setOnClickListener(this);这里为什么要用this呢?
- MySQL MyISAM和InnoDB存储引擎的比较
- flink整合java,Flink使用SideOutPut替换Split实现分流
- Cookie 、Session、Token理解以及常见问题总结
- 从文档流角度理解浏览器页面渲染引擎对元素定位的解析
- 景驰科技与联通实现全国首个5G网络下L4级无人驾驶应用
- arcgis数据量大显示慢_优化MapGIS地图显示速度我的七个方法
- JS调用asp.net后台方法:PageMethods
- 电脑模拟收银机_模拟超市收银系统
- dnf服务器不维修,dnf无法修理装备
- 【用Java模拟KTV点歌系统】
- win10安装oracle18c,Win10 Oracle 18c 完全卸载
- C++学习笔记(C转)
- 保研导师联系邮件模板
- 南京热门美食网html,江苏南京十大特色美食排名榜单揭晓
- 孪生网络图像相似度_论文浅尝 | 使用孪生BERT网络生成句子的嵌入表示
- CnOpenData中国高校专利授权数量统计
- 2012第三届国信蓝点杯全国软件设计大赛编程大题
- 力荐一些学习方面的公众号
热门文章
- oracle注射,中国联通沃支付一处Oracle数据库注射
- 地市级地铁数据管理信息系统解决方案
- java 生成pdf 分页_java itext导出PDF 分页 github
- Android随笔-include、merge、ViewStub
- 用Python学《微积分B》(序)
- 用python完成《商务与经济统计(第13版)》课后练习——第7章和第8章
- 【python数据分析】亚太地区的商学院(商务与经济统计案例3-3)数据分析
- AE 动效工作流技巧 —— 减少 Bodymovin 导出的 JSON 大小并提升性能(三)
- 2019年中国研究生数学建模大赛的经验分享
- 海康威视球形摄像头激活,web二次开发