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

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

Страниц: 1 [2] 3   Вниз
  Печать  
Автор Тема: Начало работы с Qt  (Прочитано 18473 раз)
Day
Частый гость
***
Offline Offline

Сообщений: 290


Просмотр профиля
« Ответ #15 : Январь 13, 2012, 13:53 »

Верес,
Цитировать
Это позволяет использовать формат jpeg для картинок.
ИМХО, он же формат jpeg и без этой либы понимает. Когда находит - прекрасно рисует. Вот только находит не всегда.
Записан
_OLEGator_
Гость
« Ответ #16 : Январь 13, 2012, 13:55 »

to Bepec
не совсем верно, при запуске из под студии ищет относительно файла проекта
Записан
Aluman
Гость
« Ответ #17 : Январь 13, 2012, 14:01 »

Проекты->Настройки сборки.
Там есть галочка Теневая сборка.
Если она не установлена, то у тебя будет только одна папка, которая и будет текущей.
Если галочка установлена, то текущей будет папка указанная в соот поле. При этом экзешники будут находится в поддиректориях release и debug, для релизной и дебажной сборки соответственно.

P. S. лучше используй файлы ресурсов, как уже советовали, и не придется заморачиваться с путями, тогда все картинки будут хранится в виде массива байт. 
Записан
Bepec
Гость
« Ответ #18 : Январь 13, 2012, 14:09 »

Day а ты попробуй удали эту папочку с плагинами. Посмотришь как у тебя он будет воспринимать Веселый

Когда ты запускаешь программу на своём компьютере, она ищет по путям и находит плагины. Соответственно картинка показывается.

Когда ты запустишь программу на компьютере без этих плагинов (или удалишь их из папочки Qt). То картинка у тебя будет пустым обычным виджетом.


to OLEGator спасибо за поправку, буду знать ^^
Записан
Day
Частый гость
***
Offline Offline

Сообщений: 290


Просмотр профиля
« Ответ #19 : Январь 13, 2012, 14:15 »

Ресурсы - это конечно здорово! Сразу снимает кучу проблем. Но вот что делать, если я хочу предоставить юзеру возможность самому выбрать картинку? Не говоря уж о том, что картинка может создаваться динамически.
Но дело не в этом. Меня интересует механизм поиска файлов. Ведь не только картинки я буду искать. Там и базы данных будут, а уж в ресурс никак не засунешь
Ну, вот теперь знаю, что с Qt в этом смысле надо ухо держать востро.
И за это всем спасибо!
« Последнее редактирование: Январь 13, 2012, 14:26 от Day » Записан
Day
Частый гость
***
Offline Offline

Сообщений: 290


Просмотр профиля
« Ответ #20 : Январь 13, 2012, 14:25 »

Цитировать
Aliman, Проекты->Настройки сборки.
Там есть галочка Теневая сборка.
Не нашел такой галочки, увы! Но в папке debug вообще пусто, а в release одинокий main.o
И экзешник точно в исходной папке. Клянусь! Я ж его запускаю без оболочки Qt. И никаких проблем. Не считая 20 Мб библиотек. Но это уже будет другая тема.
Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4747



Просмотр профиля WWW
« Ответ #21 : Январь 13, 2012, 15:00 »

Ресурсы - это конечно здорово! Сразу снимает кучу проблем. Но вот что делать, если я хочу предоставить юзеру возможность самому выбрать картинку? Не говоря уж о том, что картинка может создаваться динамически.
Но дело не в этом. Меня интересует механизм поиска файлов. Ведь не только картинки я буду искать. Там и базы данных будут, а уж в ресурс никак не засунешь
Ну, вот теперь знаю, что с Qt в этом смысле надо ухо держать востро.
И за это всем спасибо!
когда пользователь выбирает файл/папку, в программе доступны полные пути, с которыми нет никаких проблем. а про QCoreApplication::applicationDirPath() уже говорили.
Записан

Изучением 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
Day
Частый гость
***
Offline Offline

Сообщений: 290


Просмотр профиля
« Ответ #22 : Январь 13, 2012, 18:58 »

Все понятно.
Код:
    qDebug() << "Dir of EXE:" << QApplication::applicationDirPath();  // Без палки
    qDebug() << "Path of EXE:" << QApplication::applicationFilePath();  // Полное имя exe
    char b[200];
    getcwd(b, 198);
    qDebug() << "Current Dir (getcwd):" << b;
А вот вывод
Код:
Запускается H:\QtExamp\chapter05\ScrollArea\ScrollArea.exe...
Dir of EXE: "H:/QtExamp/chapter05/ScrollArea"
Path of EXE: "H:/QtExamp/chapter05/ScrollArea/ScrollArea.exe"
Current Dir (getcwd): H:\QtExamp\chapter05\ScrollArea\release
И палки в разные стороны...
Но хорошо, что научился пользоваться qDebug()
Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4747



Просмотр профиля WWW
« Ответ #23 : Январь 13, 2012, 19:30 »

"палки", называемые слэшами, в коде Qt-приложений надо использовать всегда только прямые - /

исключение составляет лишь использование windows api при написании windows-only кода, а также обращение к виндовому реестру через QSettings (может есть еще какие-то моменты, о которых я не знаю) - там надо использовать нативные обратные слэши \, которые в строке надо экранировать другим обратным слэшем.
Записан

Изучением 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
Day
Частый гость
***
Offline Offline

Сообщений: 290


Просмотр профиля
« Ответ #24 : Январь 13, 2012, 20:03 »

"палки", называемые слэшами, в коде Qt-приложений надо использовать всегда только прямые - /

исключение составляет лишь использование windows api при написании windows-only кода, а также обращение к виндовому реестру через QSettings (может есть еще какие-то моменты, о которых я не знаю) - там надо использовать нативные обратные слэши \, которые в строке надо экранировать другим обратным слэшем.
Это все, конечно, чрезвычайно радует. Как вы сказали? "кроссплатформенность"
Кстати, когда я задавал полный путь своим картинкам, пришлось использовать экранированные обратные слэши, прямые были проигнорированы.
Записан
Авварон
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3260


Просмотр профиля
« Ответ #25 : Январь 13, 2012, 22:08 »

"палки", называемые слэшами, в коде Qt-приложений надо использовать всегда только прямые - /

Можно писать абсолютно любые слэши - хоть "C:\\folder\\/folder/file.txt"
Внутри себя Qt уже преобразует это к виду "C:/folder/folder/file.txt" независимо от платформы и уберет все двойные слеши. См. QDir::cleanPath()
Записан
LisandreL
Птица говорун
*****
Offline Offline

Сообщений: 984


Надо улыбаться


Просмотр профиля
« Ответ #26 : Январь 13, 2012, 22:23 »

исключение составляет лишь использование windows api при написании windows-only кода
WinAPI прекрасно работает с прямыми слешами.
Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4747



Просмотр профиля WWW
« Ответ #27 : Январь 13, 2012, 22:52 »

сколько всего нового можно узнать за день Улыбающийся
Записан

Изучением 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
andrew.k
Гость
« Ответ #28 : Январь 13, 2012, 22:55 »

Проверил, даже в командной строке виндус работают прямые слеши.

Код
Bash
C:\>cd dev/projects
 
C:\dev\projects>
Записан
Day
Частый гость
***
Offline Offline

Сообщений: 290


Просмотр профиля
« Ответ #29 : Январь 14, 2012, 11:52 »

Проверил, даже в командной строке виндус работают прямые слеши.

Код
Bash
C:\>cd dev/projects
 
C:\dev\projects>
Вы правы. Они не работают только для некоторых старинных версий command.com, но это можно уже в расчет не принимать. А если у меня они где-то задействованы, ну что ж, это лично моя вина.
Всем спасибо!
Записан
Страниц: 1 [2] 3   Вверх
  Печать  
 
Перейти в:  


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