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

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

Страниц: 1 [2]   Вниз
  Печать  
Автор Тема: Ошибки кроссплатформенности  (Прочитано 13244 раз)
AlekseyK
Гость
« Ответ #15 : Апрель 15, 2010, 17:27 »

какая версия Qt??
у меня на линухе прокатывает и
Код:
QUrl url("file://"+qApp->applicationDirPath()+"/test.sh");
и
Код:
QUrl url("file:///"+qApp->applicationDirPath()+"/test.sh");

4.6.2. Тут видимо проблема не в url - он формируется корректно, а в QTextBrowser с его setSearchPaths()
Записан
crossly
Гость
« Ответ #16 : Апрель 15, 2010, 17:41 »

я имею в виду что setSource и в том и в другом случае у меня нормально работает... Qt 4.5.3
Записан
AlekseyK
Гость
« Ответ #17 : Апрель 15, 2010, 17:45 »

я имею в виду что setSource и в том и в другом случае у меня нормально работает... Qt 4.5.3

В винде у меня - да, работает, в линуксе с setSearchPaths. Припоминаю, что и в ранних версиях Qt была такая ерунда  в линуксе,- тоже надо было простой help вывести.
Записан
crossly
Гость
« Ответ #18 : Апрель 15, 2010, 17:47 »

я же написал... у меня линукс
Записан
AlekseyK
Гость
« Ответ #19 : Апрель 15, 2010, 18:04 »

Запишем в несчастные случаи Подмигивающий
Записан
AlekseyK
Гость
« Ответ #20 : Апрель 15, 2010, 18:05 »

я же написал... у меня линукс

А кстати не проверял какой у тебя searchPaths() по умолчанию? Может это где в настройках Qt, поэтому и результат разный.
Записан
crossly
Гость
« Ответ #21 : Апрель 15, 2010, 19:14 »

совершенно пустой....
Записан
Prm
Гость
« Ответ #22 : Апрель 16, 2010, 08:55 »

А если попробовать

if (QFileInfo(qApp->applicationDirPath() + "/LevitationBreathTechnic.htm").exists())
     helpUrl = "\"" + qApp->applicationDirPath() + "/LevitationBreathTechnic.htm" + "\"";

Т.е. наличие файла проверять без использования двойных кавычек, а там, где файл используется непосредственно, путь к нему обрамлять двойными кавычками. Должно помочь.
« Последнее редактирование: Апрель 16, 2010, 10:29 от Prm » Записан
crossly
Гость
« Ответ #23 : Апрель 16, 2010, 12:30 »

и в чем сокральный смысл кавычек??
Записан
Prm
Гость
« Ответ #24 : Апрель 16, 2010, 13:46 »

и в чем сокральный смысл кавычек??

Наличие пробелов или русских символов в пути к файлу.

Оговорюсь сразу - ПОД ЛИНУКСОМ НЕ ПРОБОВАЛ. Совет, как говорится, до кучи.

Простой пример. Необходимо из программы запустить другую программу.
Каталог программы C:\Program files\ Папка русскими буквами с пробалами\bin,
Запускаемый файл: prog.exe

QProcess exc;

Первый вариант:

QString prog =  QApplication::applicationDirPath() + "/prog.exe";
...
exc.start(prog);
...
Программа не запускается

Второй вариант:

QString prog =  "\"" + QApplication::applicationDirPath() + "/prog.exe" + "\"";
...
exc.start(prog);
...

Программа УСПЕШНО запущена.




« Последнее редактирование: Апрель 16, 2010, 13:51 от Prm » Записан
AlekseyK
Гость
« Ответ #25 : Апрель 17, 2010, 00:43 »

Вариант имеет право на существование, но костыль, хотя и лучше найденного мной в некоторых случаях.
Записан
Страниц: 1 [2]   Вверх
  Печать  
 
Перейти в:  


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