Russian Qt Forum
Ноябрь 26, 2024, 05:49 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: qdesktopservices открытие файлов  (Прочитано 4577 раз)
Cepheus
Гость
« : Февраль 01, 2012, 14:39 »

Код:
QUrl url = QUrl::fromLocalFile("/path_to_binary_file");
QDesktopServices::openUrl(url);
как видно пытаюсь открыть бинарный файл, да вообщем любой, проблема в том, он все запускает через браузер, как будто все приложения связанны с ним=)

Все это дело под линуксом
Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #1 : Февраль 01, 2012, 14:40 »

QProcess используй.
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
mutineer
Гость
« Ответ #2 : Февраль 01, 2012, 14:45 »

QDesktopServices::openUrl открывает файлы в связанном приложении. Если такового нет - открывает в браузере.

Связанных с бинарниками приложений в системе нет (что логично), поэтому и открывается в браузере. Для запуска бинаря слушай Пантера:)
Записан
Cepheus
Гость
« Ответ #3 : Февраль 01, 2012, 14:48 »

открывая в системе текстовый файл он открывается через текстовый редактор, а qdesktopservices открывает его всеравно через браузер.
С QProcess бинарные открываются, зато при попытки открыть тестовый файл, глухота налюдается
Записан
mutineer
Гость
« Ответ #4 : Февраль 01, 2012, 14:51 »

С QProcess бинарные открываются, зато при попытки открыть тестовый файл, глухота налюдается

Если вчитаться в доку по QProcess, то тщетность попыток такого открытия текстовых файлов станет понятна - имя текстового файла это ж не имя программы
Записан
Cepheus
Гость
« Ответ #5 : Февраль 01, 2012, 14:53 »

С QProcess бинарные открываются, зато при попытки открыть тестовый файл, глухота налюдается

Если вчитаться в доку по QProcess, то тщетность попыток такого открытия текстовых файлов станет понятна - имя текстового файла это ж не имя программы

ок задам переформулирую вопрос, раз так не понятно! как открывать файлы в связанном приложении, для этого есть qdesktopservices, но как описал выше, он считает что txt файлы и все другие(ini,xml и т.д.)связанны с браузером, не кажется Вам что это бред.
бинарные ладно открою через Qprocess.
Записан
mutineer
Гость
« Ответ #6 : Февраль 01, 2012, 15:08 »

openUrl для открытия файлов использует команды xdg-open, затем gnome-open (если в гноме). Попробуй запустить их в консоли и поверить правильно ли они открывают нужные файлы
Записан
Cepheus
Гость
« Ответ #7 : Февраль 02, 2012, 07:34 »

openUrl для открытия файлов использует команды xdg-open, затем gnome-open (если в гноме). Попробуй запустить их в консоли и поверить правильно ли они открывают нужные файлы
нет не правильно, xdg-open file, так-же открывает в браузере, значит открытие файлов через ф. менеджеры, открываются другим способом.
p.s. видимо этот вопрос относиться к linux=)
« Последнее редактирование: Февраль 02, 2012, 07:40 от Cepheus » Записан
Cepheus
Гость
« Ответ #8 : Февраль 02, 2012, 07:50 »

отпишусь тут, хотя к qt отношения не имеет

поправил скрипт xdg-open, функцию detectDE()


Код
C
 #  if [ x"$KDE_FULL_SESSION" = x"true" ]; then DE=kde;
 #  elif [ x"$GNOME_DESKTOP_SESSION_ID" != x"" ]; then DE=gnome;
 #  elif xprop -root _DT_SAVE_MODE | grep ' = \"xfce4\"$' >/dev/null 2>&1; then DE=xfce;
 #  elif [ x"$DESKTOP_SESSION" == x"LXDE" ]; then DE=lxde;
 #  fi
DE=kde
так работает, но это хак, попробую спросить решения у linux-оидов
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.163 секунд. Запросов: 23.