Russian Qt Forum
Ноябрь 24, 2024, 12:53
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Начало
Форум
WIKI (Вики)
FAQ
Помощь
Поиск
Войти
Регистрация
Russian Qt Forum
>
Forum
>
Qt
>
Пользовательский интерфейс (GUI)
>
Использование openUrl, открытие файла с неизвестным расширением
Страниц: [
1
]
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: Использование openUrl, открытие файла с неизвестным расширением (Прочитано 6271 раз)
Zerkin
Чайник
Offline
Сообщений: 98
Использование openUrl, открытие файла с неизвестным расширением
«
:
Февраль 03, 2014, 10:51 »
Доброго времени суток, господа!
Использую QDesktopServices::openUrl(const QUrl & url) для открытия html-лога в браузере по умолчанию. Всё хорошо, но суть в том, что файлу этого лога присваивается нестандартное расширение (от меня не зависит) вида .Ank, где n, k числа. Собственно, раздражает следующее поведение - как вы уже поняли, если файл с конкретным расширением не был открыт в каком-либо браузере до этого момента, то Windows (а это главная платформа в проекте) выбрасывает сообщение, что невозможно открыть файл, и приходится руками выбирать браузер. Процедура не очень утомительная, но пользователей не устраивает.
Собственно, вопрос: используя openUrl, можно ли как-то обойти эту особенность ОСи и сразу открывать через браузер по умолчанию, без этого промежуточного сообщения? Или это придется обходить уже как-то через QProcess?
Записан
Bepec
Гость
Re: Использование openUrl, открытие файла с неизвестным расширением
«
Ответ #1 :
Февраль 03, 2014, 11:52 »
пишите html в конце лога.
"имяЛога.Ank.html".
Самое верное решение!
Записан
Zerkin
Чайник
Offline
Сообщений: 98
Re: Использование openUrl, открытие файла с неизвестным расширением
«
Ответ #2 :
Февраль 03, 2014, 14:00 »
Верес
, не имею права.
Мой модуль взаимодействует с общей системой, а в ней принят такой принцип создания любых файлов и присваивания им расширений, без разницы что внутри - html, или что-то другое. Расширения такие и точка.
Так что вопрос открыт.
Попутная проблема: В дебаговской сборке на if'е студия вылетает раз через раз
Что очень странно.
Код:
QUrl logUrl("file:///" + path, QUrl::TolerantMode);
if (QDesktopServices::openUrl(logUrl))
{...}
В релизе проблемы нету.
Записан
Bepec
Гость
Re: Использование openUrl, открытие файла с неизвестным расширением
«
Ответ #3 :
Февраль 03, 2014, 14:05 »
Значит платформозависимо создавайте ассоциацию с этим типом файлов. Хотя хз как создавать, если расширения меняются нафиг? Тупизм какой то. Чесстное слово
Винда каждый раз спрашивать будет ассоциацию!
PS вы поспрашивайте у разрабов, у них скорее всего есть программа специальная для просмотра.
PPS можете плюнуть и переименовывать файл на лету (если разрешено).
Можете тупо копировать его в темповскую папку с нужным расширением и оттуда открывать. (это мне кажется более подходящим вариантом)
Записан
Zerkin
Чайник
Offline
Сообщений: 98
Re: Использование openUrl, открытие файла с неизвестным расширением
«
Ответ #4 :
Февраль 03, 2014, 14:12 »
Не сказал бы, что тупизм, там на этом принципе очень мощная система построена, на самом деле, n,k - не рандомные числа, они отвечают за определенную индексацию и еще что-то там, я честно говоря до конца не вникал, да и не моё это дело
Просто применительно к моей задаче такой принцип не очень подходит, да и не рассчитывал, вероятно, никто, когда система создавалась, что в этих файлах будет лежать что-то отличное от записанных цифровых сигналов
А сейчас такая вот задача появилась.
Думаю, конечно, как вариант прикрутить виджет вебкитовский, чтоб пользователь просматривал лог через него, а не через браузер, но хотелось бы конечно не плодить окна от модуля.
Записан
Zerkin
Чайник
Offline
Сообщений: 98
Re: Использование openUrl, открытие файла с неизвестным расширением
«
Ответ #5 :
Февраль 03, 2014, 14:14 »
Да, я тоже думал про какой-нибудь временный файл. Может быть, это выход.
Записан
Igors
Джедай : наставник для всех
Offline
Сообщений: 11445
Re: Использование openUrl, открытие файла с неизвестным расширением
«
Ответ #6 :
Февраль 03, 2014, 14:20 »
Здесь важно что за платформа. Напр на OSX это вообще не проблема, т.к. файл имеет тип (4 байта) и если он ненулевой то используется ОС'ом до extension. Если неск приложений умеют открывать файл такого типа, то можно установить атрибут creator (тоже 4 байта). По поводу др nix ОС'ов - по крайней мере тип должен быть. Или у Вас Вындоуз?
Записан
Zerkin
Чайник
Offline
Сообщений: 98
Re: Использование openUrl, открытие файла с неизвестным расширением
«
Ответ #7 :
Февраль 03, 2014, 14:22 »
Онли Винда. Никсы где-то в очень далекой и туманной перспективе.
Записан
Zerkin
Чайник
Offline
Сообщений: 98
Re: Использование openUrl, открытие файла с неизвестным расширением
«
Ответ #8 :
Февраль 03, 2014, 14:37 »
А по поводу вылета студии в дебаге у кого какие мысли есть?
Записан
Igors
Джедай : наставник для всех
Offline
Сообщений: 11445
Re: Использование openUrl, открытие файла с неизвестным расширением
«
Ответ #9 :
Февраль 03, 2014, 14:46 »
Цитата: Zerkin от Февраль 03, 2014, 14:22
Онли Винда. Никсы где-то в очень далекой и туманной перспективе.
Тогда нужно что-то прописывать в реестре (напр на старте приложения). Да, через WinAPI, подробностей не знаю, но такая возможность есть: напр архиваторы умеют открывать свой "том архива" (с переменным расширением как у Вас).
Ничего, походы в нативняк тоже полезны (чтобы не расслаблялись с OpenUrl)
Записан
kambala
Джедай : наставник для всех
Offline
Сообщений: 4747
Re: Использование openUrl, открытие файла с неизвестным расширением
«
Ответ #10 :
Февраль 03, 2014, 14:53 »
в реестр можно писать и через QSettings
можно попробовать запросить браузер по умолчанию (например программа, открывающая файлы html) и запустить его с твоим файлом в качестве параметра
Записан
Изучением C++ вымощена дорога в Qt.
UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
xokc
Птица говорун
Offline
Сообщений: 976
Re: Использование openUrl, открытие файла с неизвестным расширением
«
Ответ #11 :
Февраль 04, 2014, 08:51 »
Как вариант: перед вызовом openUrl создавать временный html файл с содержимым, выполняющим редирект на требуемый *.Ank файл и в openUrl подставлять именно этот временный файл.
Записан
Zerkin
Чайник
Offline
Сообщений: 98
Re: Использование openUrl, открытие файла с неизвестным расширением
«
Ответ #12 :
Февраль 04, 2014, 11:12 »
Цитата: xokc от Февраль 04, 2014, 08:51
Как вариант: перед вызовом openUrl создавать временный html файл с содержимым, выполняющим редирект на требуемый *.Ank файл и в openUrl подставлять именно этот временный файл.
Сделал как Вы предложили, вполне всё меня устраивает, спасибо!
Спасибо всем за советы, остался только вопрос вылета студии, но я так понимаю это вопрос не данного раздела, да и проблема не в коде, вероятно.
Записан
Страниц: [
1
]
Вверх
Печать
« предыдущая тема
следующая тема »
Перейти в:
Пожалуйста, выберите назначение:
-----------------------------
Qt
-----------------------------
=> Вопросы новичков
=> Уроки и статьи
=> Установка, сборка, отладка, тестирование
=> Общие вопросы
=> Пользовательский интерфейс (GUI)
=> Qt Quick
=> Model-View (MV)
=> Базы данных
=> Работа с сетью
=> Многопоточное программирование, процессы
=> Мультимедиа
=> 2D и 3D графика
=> OpenGL
=> Печать
=> Интернационализация, локализация
=> QSS
=> XML
=> Qt Script, QtWebKit
=> ActiveX
=> Qt Embedded
=> Дополнительные компоненты
=> Кладовая готовых решений
=> Вклад сообщества в Qt
=> Qt-инструментарий
-----------------------------
Программирование
-----------------------------
=> Общий
=> С/C++
=> Python
=> Алгоритмы
=> Базы данных
=> Разработка игр
-----------------------------
Компиляторы и платформы
-----------------------------
=> Linux
=> Windows
=> Mac OS X
=> Компиляторы
===> Visual C++
-----------------------------
Разное
-----------------------------
=> Новости
===> Новости Qt сообщества
===> Новости IT сферы
=> Говорилка
=> Юмор
=> Объявления
Загружается...