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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Как вставить ссылку на pdf документ?  (Прочитано 5624 раз)
volkov9999
Гость
« : Июль 01, 2012, 15:32 »

Приветствую дорогие форумчане! Over 100500 лет не занимался qt и опять все забыл.. Веселый
Вопрос: как сделать ссылку на pdf документ, который будет прикрепляться в папку с проектом? Вроде тут совсем все просто должно быть. Вставил элемент Qlabel и в нем указал ссылку на документ, но не сработало. Что не так?
Записан
volkov9999
Гость
« Ответ #1 : Июль 01, 2012, 16:40 »

При наведении на ссылку появляется палец (характерная реакция на ссылки), при клике правой кнопки мышки выскакивает окошко "Copy Link Location" - можно скопировать ссылку. Ссылка правильная, но почему-то при обычном нормальном клике - не работает.
Записан
volkov9999
Гость
« Ответ #2 : Июль 01, 2012, 17:50 »

Итак, благодаря нашим коллективным действиям   Смеющийся нашел решение:

bool QDesktopServices::openUrl ( const QUrl & url ) [static]
Записан
volkov9999
Гость
« Ответ #3 : Июль 01, 2012, 19:23 »

Вот пример, кому надо.
Всем мир, добро, котятки.
Записан
Bepec
Гость
« Ответ #4 : Июль 01, 2012, 22:11 »

Я тебе по секрету скажу - в QLabel свойство надо изменить, чтоб разрешить ссылки открывать Веселый

А openURL это уже другая опера Веселый
Записан
volkov9999
Гость
« Ответ #5 : Июль 02, 2012, 01:27 »

свойство   openExternalLinks - галочку поставить. Но почему-то не заработало...
Записан
volkov9999
Гость
« Ответ #6 : Июль 11, 2012, 14:10 »

Обнаружил проблему
При клике на кнопку у меня вызывается слот openPDF() . Вот его код:

Код:
void Widget::openPDF()

{
    string_path.clear();
    string_path = QApplication::applicationDirPath() ;  // получаем полный путь, в котором запущена программа
    string_path.operator += ("/imageformats/spravdan.pdf") ; // добавляем к адресу положение пдф документа
    QDesktopServices::openUrl(QUrl(string_path , QUrl::TolerantMode));
    return ;
}


И все было бы хорошо, только если в полном пути у нас имеются нехороший символ, такой как пробел  - то ссылка не открывается. Пытался заменить пробел на его урл аналог '%20'  - безуспешно.
Отсюда вопрос:
Как заменить пробел чтобы ссылка заработала? или
Как сделать возможность запуска файла без указания апсолютного пути?

Bepec был прав. Действительно в QLabel есть свойство, которое разрешает открывать ссылки - но там тоже запуск получается только при указании апсолютоно пути вроде
f:\qt\project-build-desktop\release\file.pdf

Т.е. пробел в пути даже при помощи Qlabel не обойти. Что посоветуете?
Записан
kostya2vntu
Гость
« Ответ #7 : Июль 11, 2012, 15:56 »

Попробуй экранировать пробел так: "\ " (а-ля unix-way)
Записан
volkov9999
Гость
« Ответ #8 : Июль 11, 2012, 23:19 »

Экранирование не помогло В замешательстве
Записан
volkov9999
Гость
« Ответ #9 : Июль 12, 2012, 00:33 »

Проблема остается... Как временное решение нашел выход - использование
QProcess::execute("explorer .\\file_dir\ ");    - открывает нужную директорию, с учетом того, что там пока один файл - сойдет, но буду продолжать искать.
Всем лучиков радости! Целующий
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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