我正在为 OpenCV 中的模式识别编写一个 C++ 程序。提示用户输入,当用户输入“查看图像数据库”选项时,我想要一个显示该目录中文件的窗口。我尝试了一个系统调用
system("nautilus /home/sample/index.jpg");
但它说它找不到目录并要求检查拼写。我想知道是否是因为从不同的目录执行程序。谁能解释为什么会这样?如果是这样,如何绕过它?
我正在为 OpenCV 中的模式识别编写一个 C++ 程序。提示用户输入,当用户输入“查看图像数据库”选项时,我想要一个显示该目录中文件的窗口。我尝试了一个系统调用
system("nautilus /home/sample/index.jpg");
但它说它找不到目录并要求检查拼写。我想知道是否是因为从不同的目录执行程序。谁能解释为什么会这样?如果是这样,如何绕过它?
您必须使用默认设置文件管理器,而不是 nautilus 或任何其他。试试看这里:Linux默认应用程序,如何找到默认文件管理器
如果要打开 nautilus,请输入完整路径(可能是/usr/bin/nautilus ,但您可以使用which命令轻松发现)。
一些进一步的说明:
并非所有 Linux 系统都有 Nautilus(例如,Mint 已将 Nautilus 替换为nemo)
如果你想制作交互式窗口,那么你需要一个合适的图形库。在这种情况下,由于您使用 C++ 进行编程,因此我建议您使用所有 Linux 桌面发行版上都可用的 Qt。