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& ...
最新文章
- JavaScript初学者编程题(17)
- IT从花钱到赚钱——惠普IT转型记
- 2022 年第一场云原生技术实践营开启报名
- 计算机对英语口语考试成绩,英语口语考试人机对话得分技巧
- 如何将JBoss HR员工奖励项目放入云端
- css 属性名 查询表
- sybase 连接mysql_安装sybase服务器并连接数据库
- 如何检测浏览器所支持的最小字体大小
- 蓝桥杯c语言基础试题答案,蓝桥杯试题C语言答案.doc
- Linux内核数据结构之哈希表
- 地心一号-基于STM8的超迷你自平衡小车-DIY套件
- App登录方式和测试重点总结
- 软件架构之分层模式 Layered Architecture
- windows利用diskpart格式化磁盘
- 【 FlutterUnit 食用指南】 开源篇
- 七剑下天山,独领自动化测试技术
- 【网络摘录】Google网页搜索技巧
- 关于stm32的VCP技术原理
- 深度学习之(DNN)深度神经网络
- Typora使用快捷键
热门文章
- c语言函数定义的语法格式,C语言函数
-C语言函数定义的语法格式
- 自学JAVA的十大网站你都知道那些
- 自制宿舍门禁,微信小程序蓝牙控制,比指纹更安全~
- 一文全记录斐讯K3刷机+打印服务器+私人云盘+frp内网穿透+ftp远程上传下载
- 微信小程序富文本插件WxParse使用
- 面试(软件实施工程师)
- windows计算器_计算Windows计算器中的错误
- bodymovin导出没有html5,Bodymovin导出Json文件避坑指南
- 唧唧Down(B站视频下载) 彻底解决你的B站视频下载问题
- java循环遍历map集合_Java中遍历Map集合的四种方法