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

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

Страниц: [1] 2   Вниз
  Печать  
Автор Тема: работа с файлами и QUrl из под ресурсов  (Прочитано 14313 раз)
daimon
Гость
« : Октябрь 11, 2012, 00:28 »

Как подключить css в ресурсах?

Код
C++ (Qt)
QWebPage *page = new QWebPage();
page->settings()->setUserStyleSheetUrl(QUrl::fromLocalFile(":/Resources/default.css"));

если просто локальный файл - всё работает

http://stackoverflow.com/questions/9712754/setting-external-css-for-qwebview-with-resource-file
Записан
Bepec
Гость
« Ответ #1 : Октябрь 11, 2012, 08:12 »

Эммм.. Вас не волнует, что вы пытаетесь открыть файл, находящийся в ресурсах (запихнутый туда и не распакованный), как обычный файл?

Пример как должно быть: берёте колбасу => откусываете => профит.

У вас: берёте колбасу => ложите в холодильник => пытаетесь откусить через холодильник => ломаете зубы => удивление, голод, тема на форуме Веселый

PS вы сейчас пытаетесь открыть файл в ресурсах как локальный файл. А необходимо всего то считать из ресурсов -> запихнуть куда угодно. Он жеж ведь запакован в вашу программу.
Записан
mutineer
Гость
« Ответ #2 : Октябрь 11, 2012, 09:59 »

Вроде ж по приведенной ссылке ответили на вопрос
Записан
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #3 : Октябрь 11, 2012, 10:17 »

Он жеж ведь запакован в вашу программу.
Точнее: он сохранен без всякой упаковки как static данные. Это, кстати, противоречит общей идее ресурсов - они совсем не обязаны быть read-only и загружаться немедленно. Зато с совместимостью без проблем.
Записан
Bepec
Гость
« Ответ #4 : Октябрь 11, 2012, 10:20 »

Ну вроде ж он запихан в бинарном виде с указанием его типа, не?

PS а можно как нить достать из Qt exe/dll его ресурсы?
Записан
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #5 : Октябрь 11, 2012, 10:34 »

Ну вроде ж он запихан в бинарном виде с указанием его типа, не?
Ну да

PS а можно как нить достать из Qt exe/dll его ресурсы?
Насчет "достать" не знаю (не вижу как), но это и не особо интересно - ведь легально редактировать без "пересборки" все равно нельзя, что конечно плохо
Записан
Bepec
Гость
« Ответ #6 : Октябрь 11, 2012, 10:42 »

Как из обычных windows exe доставать - знаю. А вот как из Qt-шных не особо Улыбающийся

Просто очень интересно, данные, допустим, в текстовом файле получаются общедоступными тогда? Если файл в ресурсах?
Записан
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #7 : Октябрь 11, 2012, 11:00 »

Как из обычных windows exe доставать - знаю. А вот как из Qt-шных не особо Улыбающийся

Просто очень интересно, данные, допустим, в текстовом файле получаются общедоступными тогда? Если файл в ресурсах?
Ресурсы Вындоуз - жалкий огрызок по сравнению с тем что было на Mac еще 20 лет назад Улыбающийся "Файл/данные в ресурсе" имеет разный смысл на разных платформах. На Вындоуз это в формате самого файла, на Mac ресурсы поддерживаются файловой системой, на линукс - не знаю. А "Qt ресурсы" - это как бы Вы написали напр
Код
C++ (Qt)
static char data [] = { .... // тут километры )
 
Ну то есть просто сегмент данных программы - и все. Ну и конечно с редактированием "извне" мрачно
Записан
Bepec
Гость
« Ответ #8 : Октябрь 11, 2012, 12:02 »

Ппц. А каких нить координат этой области памяти нет? Он же по идее должен иметь какие то ограничения?

PS искал манулы - не нашёл Улыбающийся
Записан
daimon
Гость
« Ответ #9 : Октябрь 11, 2012, 13:52 »

пробую считать файл
Код
C++ (Qt)
QFile file(":/m_metod_qt/Resources/default.css");
 
file.open(QFile::ReadOnly);
QString styleSheet = QLatin1String(file.readAll());
qDebug()<<file.exists();

в ответ false

http://prntscr.com/h7pcu
http://www.youtube.com/watch?v=sWIQIi4lg58

что не так?
« Последнее редактирование: Октябрь 11, 2012, 14:04 от daimon » Записан
Bepec
Гость
« Ответ #10 : Октябрь 11, 2012, 14:08 »

Код:
	QFile file(":/qrcRead/Resources/qrcread.cpp");
if (!file.open(QIODevice::ReadOnly))
return;

QString f(file.readAll());

Работает как часы.

PS а вот это QFile::ReadOnly вы откуда взяли? Оо

PPS возможно новая версия куте Улыбающийся Не видел, незнаю.
« Последнее редактирование: Октябрь 11, 2012, 14:09 от Bepec » Записан
m_ax
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2094



Просмотр профиля
« Ответ #11 : Октябрь 11, 2012, 14:24 »


PS а вот это QFile::ReadOnly вы откуда взяли? Оо

PPS возможно новая версия куте Улыбающийся Не видел, незнаю.

QFile наследует от QIODevice..
Записан

Над водой луна двурога. Сяду выпью за Ван Гога. Хорошо, что кот не пьет, Он и так меня поймет..

Arch Linux Plasma 5
Bepec
Гость
« Ответ #12 : Октябрь 11, 2012, 14:27 »

  Смеющийся
Записан
daimon
Гость
« Ответ #13 : Октябрь 11, 2012, 14:43 »

Код
C++ (Qt)
QFile file(":/qrc/Resources/default.css");
 
if (!file.open(QIODevice::ReadOnly)){
qDebug()<<file.exists();
return;
}
 
QString f(file.readAll());
qDebug()<<f;

нет файла и всё

http://prntscr.com/h7rrh
http://prntscr.com/h7rt5
http://prntscr.com/h7ru8

что не так?
« Последнее редактирование: Октябрь 11, 2012, 14:46 от daimon » Записан
m_ax
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2094



Просмотр профиля
« Ответ #14 : Октябрь 11, 2012, 14:46 »

пробую считать файл
Код
C++ (Qt)
QFile file(":/m_metod_qt/Resources/default.css");
 
file.open(QFile::ReadOnly);
QString styleSheet = QLatin1String(file.readAll());
qDebug()<<file.exists();

в ответ false

http://prntscr.com/h7pcu
http://www.youtube.com/watch?v=sWIQIi4lg58

что не так?

А для чего здесь QLatin1String? Что оно делает?
Записан

Над водой луна двурога. Сяду выпью за Ван Гога. Хорошо, что кот не пьет, Он и так меня поймет..

Arch Linux Plasma 5
Страниц: [1] 2   Вверх
  Печать  
 
Перейти в:  


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