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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: QML проверка существования пути файла  (Прочитано 7280 раз)
IGHOR
Крякер
****
Offline Offline

Сообщений: 390



Просмотр профиля WWW
« : Апрель 25, 2012, 15:08 »

Есть приложение с динамически загружаемыми картинками с форматом имен 001.png и надо их загружать в цикле например от 1 до 1000;
Если картинки нет на диске то в консоли ошибка "Cannot open file://" и вместо картинки прозрачный фон.
Надо чтобы вместо недостающих картинок была дефолтная.
Можно было бы обойтись фоном с Image.Tile но хочется избавится от ошибок в консоли, и думаю так будет лучше.
То как в QML сначала проверить путь на существование этой картинки?
Записан
ecspertiza
Супер
******
Offline Offline

Сообщений: 1053


С уважением, мастер конфетного цеха!


Просмотр профиля
« Ответ #1 : Апрель 25, 2012, 15:13 »

В qml пожалуй никак, если только в КуТе части написать свою проверку и экспортировать. Но можно например проверять статус загрузки картинки

Код:
Image.Null - no image has been set
Image.Ready - the image has been loaded
Image.Loading - the image is currently being loaded
Image.Error - an error occurred while loading the image

если Error ставить дефолтную.
Записан
IGHOR
Крякер
****
Offline Offline

Сообщений: 390



Просмотр профиля WWW
« Ответ #2 : Апрель 25, 2012, 15:24 »

если Error ставить дефолтную.

Спасибо! поставил на условие if(status==Image.Error)source= загрузку дефолтной и все работает как положено.

А вывод в консоли десятка ошибок "Cannot open: file:///".. не влияет на производительность? И можно как-то временно выключать вывод во время загрузки чтобы не засорять консоль?
« Последнее редактирование: Апрель 25, 2012, 16:26 от IGHOR » Записан
Ubuntu_linux
Гость
« Ответ #3 : Апрель 26, 2012, 00:05 »

так, для справки:
soure: status===Image.Error ? "default.png" : "001.png"
Записан
IGHOR
Крякер
****
Offline Offline

Сообщений: 390



Просмотр профиля WWW
« Ответ #4 : Апрель 26, 2012, 01:42 »

Ubuntu_linux, не катит, так как status===Image.Error можно проверить только после присванивания source картинки а не до этого.
Или я вас не правильно понял?
Записан
Ubuntu_linux
Гость
« Ответ #5 : Апрель 26, 2012, 03:11 »

Ubuntu_linux, не катит, так как status===Image.Error можно проверить только после присванивания source картинки а не до этого.
Или я вас не правильно понял?
Можно статус проверять и до указания соурса картинки.
Записан
IGHOR
Крякер
****
Offline Offline

Сообщений: 390



Просмотр профиля WWW
« Ответ #6 : Апрель 27, 2012, 15:06 »

Можно статус проверять и до указания соурса картинки.
Но до указания соурса картинки status будет всегда одинаковым?
Записан
Ubuntu_linux
Гость
« Ответ #7 : Апрель 28, 2012, 19:29 »

Можно статус проверять и до указания соурса картинки.
Но до указания соурса картинки status будет всегда одинаковым?
ДА, но он будет не Error...
Записан
IGHOR
Крякер
****
Offline Offline

Сообщений: 390



Просмотр профиля WWW
« Ответ #8 : Апрель 29, 2012, 15:57 »

ДА, но он будет не Error...
Но все-же будет всегда одинаковым пока картинке соурс не присвоить?
Ваш метод почему-то не работает, и я не понимаю как это должно работать, но интересно бы разобраться.
Одним словом проблема решена Улыбающийся
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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