Pon*_*dle 15 c++ user-interface dialog cross-platform native
我正在为我的程序编写一个UI,使用opengl和SDL结合使用Lua和C++
我现在需要的是一些库,它允许我调用一个函数,向用户显示用于打开/保存文件的文件选择对话框.但是如果操作系统为这样的对话提供了本机功能,那么我想使用该对话框(例如Window的GetOpenFileName).
我需要支持的唯一平台是Windows和Linux,但我希望能够仍然使用我已编写的大部分SDL和openGL代码.
有哪些选择?
Mic*_*bbé 24
你应该好好看看Native File Dialog.它是一个小型的可移植C库,允许您以跨平台的方式使用加载和保存对话框,而无需链接qt或wxWidgets等巨大的依赖项.
我是作者,我在Linux,Mac和Windows上使用SDL2和OpenGL.
https://github.com/mlabbe/nativefiledialog
tin*_*ogs 14
tinyfiledialogs提供了许多模态对话框和弹出通知(包括图形和控制台模式).它是一个跨平台的C文件(+标题),可以添加到您的C或C++项目中.它的目的是非常容易使用,没有INIT,没有主循环,没有包含和没有链接.它被github上的数百个项目使用,当然,我是作者.
在我看来,wxWidgets的是在开源的,战斗测试,成熟的,跨平台,跨语言,免费,开源的GUI库.除了wxWidgets之外,还有许多其他此类跨平台库,例如:
... 和更多.
您很可能会在AbiWord源代码中找到您正在寻找的内容.在src目录中查找"FileOpen":
./af/xap/cocoa/xap_CocoaDlg_FileOpenSaveAs.cpp
./af/xap/cocoa/xap_CocoaDlg_FileOpenSaveAs.h
./af/xap/cocoa/xap_CocoaFileOpen_Views.nib
./af/xap/cocoa/xap_CocoaFileOpen_Views.nib/classes.nib
./af/xap/cocoa/xap_CocoaFileOpen_Views.nib/info.nib
./af/xap/cocoa/xap_CocoaFileOpen_Views.nib/keyedobjects.nib
./af/xap/gtk/xap_UnixDlg_FileOpenSaveAs.cpp
./af/xap/gtk/xap_UnixDlg_FileOpenSaveAs.h
./af/xap/win/xap_Win32Dlg_FileOpenSaveAs.cpp
./af/xap/win/xap_Win32Dlg_FileOpenSaveAs.h
./af/xap/xp/xap_Dlg_FileOpenSaveAs.cpp
./af/xap/xp/xap_Dlg_FileOpenSaveAs.h
Run Code Online (Sandbox Code Playgroud)
Windows版确实使用GetOpenFileName().
当然,正如安德烈在指出有效的替代答案时指出的那样,也有Qt,正如你已经知道的那样.请参阅raj的答案以获取链接.
http://doc.qt.nokia.com/latest/qfiledialog.html提供了os文件打开服务的良好抽象