![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
![]() |
Strikevld |
![]() ![]()
Сообщение
#1
|
Студент ![]() Группа: Участник Сообщений: 53 Регистрация: 6.9.2011 Пользователь №: 2849 Спасибо сказали: 6 раз(а) Репутация: ![]() ![]() ![]() |
Всем привет!
Вот хочу чтобы в моей проге интерфейс (состоящий из нескольких файлов QML) загружался из одного zip архива! Ток я не смог найти каким образом QDeclarativeView берёт данные для построения интерфейса! Проще сказать: Что переопределять то? думал там есть чтото вроде метода read, но ничего такого не нашел! Подскажите пожалуйста! т.е. каким образом QDeclarativeView читает QML? setSource не то что надо! |
|
|
PAFOS |
![]()
Сообщение
#2
|
Активный участник ![]() ![]() ![]() Группа: Участник Сообщений: 258 Регистрация: 27.12.2010 Из: Дмитров Пользователь №: 2309 Спасибо сказали: 29 раз(а) Репутация: ![]() ![]() ![]() |
Думаю за чтение и загрузку QML отвечает вовсе не QDeclarativeView, а QDeclarativeEngine.
Однако у него нету никаких виртуальных методов. Более того, судя по его функциям addImportPath, addPluginPath и им подобным - не получится у тебя напрямую из архива доставать файлы. Как возможный вариант можно предложить вот что: перед использованием qml, распакуй архив во временную директорию и работай с ней |
|
|
Strikevld |
![]()
Сообщение
#3
|
Студент ![]() Группа: Участник Сообщений: 53 Регистрация: 6.9.2011 Пользователь №: 2849 Спасибо сказали: 6 раз(а) Репутация: ![]() ![]() ![]() |
Учту это! Но всё же пока что буду копать в сторону переопределения!
|
|
|
PAFOS |
![]()
Сообщение
#4
|
Активный участник ![]() ![]() ![]() Группа: Участник Сообщений: 258 Регистрация: 27.12.2010 Из: Дмитров Пользователь №: 2309 Спасибо сказали: 29 раз(а) Репутация: ![]() ![]() ![]() |
Придумал костыль
![]() У QDeclarativeEngine имеется свой QDeclarativeNetworkAccessManagerFactory c методом QNetworkAccessManager *create ( QObject * parent ) = 0. нам нужно: 1. переопределить QNetworkAccessManager, который будет брать из zip архива данные 2. переопределить QDeclarativeNetworkAccessManagerFactory, который будет возвращать переопределенный QNetworkAccessManager 3. в setSource нашего declarative view устанавливаем какой-нибудь QUrl("zip://blablabla") Пробуй!) P.S. я не пробовал ![]() |
|
|
Strikevld |
![]()
Сообщение
#5
|
Студент ![]() Группа: Участник Сообщений: 53 Регистрация: 6.9.2011 Пользователь №: 2849 Спасибо сказали: 6 раз(а) Репутация: ![]() ![]() ![]() |
Спасибо!!!
Ага попробую попозже! О результатах отпишусь! |
|
|
![]() ![]() ![]() |
![]() |
Текстовая версия | Сейчас: 9.12.2023, 5:58 |