#ubuntu #pyqt
Вопрос:
Я работаю над приложением, в котором требуется открыть файл и папку, в которой находится файл. Я работаю в ubuntu20. Я разрабатываю это приложение с помощью pyqt.
До сих пор я старался следовать приведенным выше требованиям:
- Попытался выполнить команду xdg-open как:
os.system(f'xdg-open "{path}"')
- Попытался использовать внутренний модуль Qt QDesktopServices в качестве:
QDesktopServices.openUrl(QUrl(path))
Но в обоих этих подходах индекс файла открывается в веб-браузере по умолчанию, а файл открывается внутри браузера. Я не могу открыть соответствующую папку в проводнике файлов Ubuntu и файл, используя приложения по умолчанию.
Хотя я перешел в случае открытия файла с приложением по умолчанию, выполнив весь путь как команду: os.system(path)
, но в поисках лучшего/надежного решения.
———ОБНОВЛЕНИЕ———
когда я выполняю xdg-open path
в терминале, папка открывается в проводнике, и файл открывается с помощью приложения по умолчанию.
Комментарии:
1. Это больше похоже на проблему с настройкой пользователя (с которой вы можете сделать очень мало). Происходит ли то же самое, даже если вы работаете
xdg-open <path>
на терминале?2. спасибо за быстрый ответ, папка открывается в проводнике файлов, а файл-в приложении по умолчанию.
3. Я только что заметил , что вы используете
QUrl(path)
, но для локальных файлов вы должны использоватьQUrl.fromLocalFile(path)
.4. @musicamante также попробовал QUrl.fromLocalFile(путь), но результат тот же, т. е. индекс файла и файл открывается в браузере
5. Вы полностью уверены, что используемый вами путь действителен? Вы можете опубликовать это?