Я пытаюсь открыть руководство в формате PDF для некоторого оборудования из моего приложения. Он будет запущен из меню помощи. Кажется, я не могу заставить мое приложение открывать файл по относительному пути с помощью приложения ОС по умолчанию. я нашел
Упоминается на форумах Qt, и это работает для меня, за исключением того, что я собираюсь установить свое программное обеспечение на другой компьютер, и абсолютный путь не будет таким же. Я бы хотел установить руководство рядом с моим приложением и открыть его чем-то вроде
Но это не открывается с
Кто-нибудь делал это раньше?
Источник: question-it.com
Открытие файла
Стабильный хостинг, на котором располагается социальная сеть EVILEG. Для проектов на Django рекомендуем VDS хостинг.
#017 — Диалог открытия файлов в Qt 5.14.0
Подписка на обсуждение 0
Подписка на раздел 227
Вам это нравится? Поделитесь в социальных сетях!
- Evgenii Legotckoi
- #
- 12 января 2017 г. 8:13
QProcess не открывает нужную программу в зависимости от типа файла. Необходимо сначала выяснить, какого типа является файл, а потом уже открывать нужную программу через QProcess, передав ей в качестве аргумента путь к файлу.
Самый простой способ определения типа файла — это проверить его расширение, то есть .txt или .svg на конце к примеру. А потом уже открывать нужную программу из возможных установленных в системе.
QString program_1 = «gedit»; // Текстовый редактор Gedit в Linux QString program_2 = «inkscape»; // Векторный редактор Inkscape QString fileName = «/home/some_user/check.txt»; // Абсолютный путь к файлу в Linux QProcess *myProcess = new QProcess(this); if (fileName.endsWith(«.txt»)) < myProcess->start(program_1, QStringList() else if (fileName.endsWith(«.svg»)) < myProcess->start(program_2, QStringList()
Заметьте, что необходимо учитывать синтаксис командной строки для каждой программы, которую Вы намерены открывать через QProcess.
QProcess не имеет представления о программах установленных на ПК, то есть о программах по умолчанию для файлов.
А вот о программах по умолчанию знает класс QDesktopServices, и он должен открывать нужные софтины просто по URL файла:
QDesktopServices::openUrl(QUrl(«/home/some_user/check.txt»));
Источник: evileg.com
Русские Блоги
Ubuntu указывает режим открытия файла по умолчанию (принять QT Creator в качестве примера)
Ubuntu 14.04 32-битная система, хочу использовать Qt Creator, чтобы сделать редактор кода под Ubuntu. Ранее установленные qt4.8.6 поставляется с Qt Creator 2.4.1, слишком старый, текущий CT Creator — это уже 64-битные версии под Linux, а официальный последний верситель Linux 32 — 3.5.1. Вы не можете выбрать открыть версию 3.5.1 по умолчанию после установки. В открытом режиме нет CT Creator 3.5.1, поэтому изучите список режимов Open Mode.
Информация о запросах нашла, что программное обеспечение настройки Ubuntu по умолчанию для открытия режима:
Системный режим открытия по умолчанию сохраняется /usr/share/applications/defaults.list
Новый открытый режим сохраняется ~/.local/share/applications/mimeapps.list
(Примечание ~ представляет / home / alex, личная папка под домой)
Как открыть файл на компьютере в Qt? | Диалоговые окна
/ Usr / share / filication файл
Скриншот списка открытых режимов
В основном мы добавляем открытый режим, переключайтесь в каталог ~ / .Local / Share / Chare / Applications, измените файл mimeApps.list под его каталогом, и добавьте файл открытого режима. Файл формата Desktop.
Содержание в Qt-Creationor351.desktop заключается в следующем ( Обратите внимание, что за каждую строку нет места. Если вы введете правильное, вы будете использовать Gedit, чтобы открыть его. В противном случае, если вы черные, цвет файла, который я только начал, черный, потому что есть пробелы позади. Все предметы могут быть изменены в соответствии с реальной ситуацией):
[Desktop Entry]
Version=1.0
Encoding=UTF-8
Type=Application
Name=QtCreator351
Comment=QtCreator351
NoDsiplay=true
Exec=/opt/qtcreator-3.5.1/bin/qtcreator %f
Icon=/opt/qtcreator-3.5.1/share/pixmaps/logo/64/qtcreator.png
Name[en_US]=Qt-Creator351
Qt-Creationor351.desktop Открыть с GEDIT и отображается в / usr / share / share / privents Сравнение папок
Добавьте строку в ~ / .local / Share / Applications / mimeapps.list.
Обновить информацию шахты
Терминал вводит следующие инструкции:
sudo update-mime-database /usr/share/mime
Источник: russianblogs.com