我想知道是否有人可以帮助我在 Ubuntu 中用 C++ 实现一个简单的文件打开对话框。我正在为我的 GUI 使用 OpenGL,但我希望用户能够在程序加载时选择一个文件。我已经尝试过 gtkmm 和 wxWidgets,但对于我想做的事情来说,它们似乎太复杂了。
问问题
6778 次
4 回答
7
如果您只需要选择一个文件,请启动一个单独的程序来执行此操作。就像@Dummy00001 在评论中所说,您可以从zenity --file-selection
子进程开始并阅读其标准输出。
char filename[1024];
FILE *f = popen("zenity --file-selection", "r");
fgets(filename, 1024, f);
或者您也可以编写自己的程序来完成任务。这样您就可以根据需要自定义 UI。
于 2015-05-25T05:52:53.850 回答
1
这个项目可以帮助你: https ://github.com/samhocevar/portable-file-dialogs
它使用这些答案中描述的相同想法,但它与架构无关,对于 Unix,它包含 zenity、kdialog ...
于 2021-07-30T22:30:50.640 回答
1
为此,我编写了osdialog。请参阅osdialog_gtk2.c
使用 GTK+ 2 的示例。
于 2019-05-09T20:12:53.157 回答
0
在这里,您有更完整的 zenity 代码:
const char zenityP[] = "/usr/bin/zenity";
char Call[2048];
sprintf(Call,"%s --file-selection --modal --title=\"%s\" ", zenityP, "Select file");
FILE *f = popen(Call,"r");
fgets(Bufor, size, f);
int ret=pclose(f);
if(ret<0) perror("file_name_dialog()");
return ret==0;//return true if all is OK
于 2020-05-13T10:04:27.947 回答