2013-11-07 4 views
0

Я пишу программу C++ для распознавания образов в OpenCV. Подсказка для ввода пользователем, когда пользователь вводит опцию «Просмотр базы данных изображений», я хочу, чтобы окно показывало файлы в этом каталоге. Я пробовал системный вызов сКак открыть графический интерфейс «Открыть каталог» с C++ в ubuntu?

system("nautilus /home/sample/index.jpg"); 

но он говорит, что не смог найти справочник и попросил проверить правописание. Мне было интересно, было ли это из-за выполнения программы из другого каталога. Может ли кто-нибудь объяснить, почему это происходит? Если да, то как обойти это?

+0

Для функций приложения GUI на Ubuntu, взгляните на [Qt] (http://qt-project.org/) или [Gtk] (HTTP: // WWW. gtk.org/). – Boris

+0

Не запускайте свои программы с помощью 'system', используйте соответствующие системные вызовы для этого. –

ответ

1

Если вы хотите открыть наутилус, поставить полный путь (возможно, /USR/BIN/наутилус но вы можете легко обнаружить с помощью команды которая).

Некоторые дополнительные примечания:

  • Не все системы Linux имеют Nautilus (Mint, например, заменил Nautilus с Немо)

  • Если вы хотите, чтобы сделать интерактивные окна, то вы нужна правильная графическая библиотека. В этом случае, поскольку вы программируете на C++, я предлагаю вам использовать Qt, который доступен во всех дистрибутивах на рабочем столе Linux.

+0

Благодарим вас за ответ. Я использовал ту команду на nautilus, и она вернула usr/bin/nautilus. Когда я заменяю его в программе, он возвращает это: sh: 1: usr/bin/nautilus: не найден. Как быстро я могу разработать «Открытый каталог» с Qt. Я знаю, что это зависит от моих усилий, но поскольку я совершенно не знаком с Javascript/Qt. Не могли бы вы рассказать мне об этом? –

+0

Я понял. :) Извините, я использую «/» перед usr в usr/bin/nautilus, и поэтому я получил эту ошибку. Огромное спасибо. Теперь мне не нужно использовать Qt. Благодарю. –

0

Вы должны использовать стандартный файловый менеджер по умолчанию, а не наутилус или любой другой. Попробуйте посмотреть здесь: Linux default applications, How to find the default file manager

+0

Ссылка, как найти менеджера по умолчанию, была полезной в поиске другого способа делать то, что я хотел. xdg-open работал. :) благодаря. –

Смежные вопросы