Russian Qt Forum

Qt => Qt Quick => Тема начата: IGHOR от Апрель 25, 2012, 15:08



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


Название: Re: QML проверка существования пути файла
Отправлено: ecspertiza от Апрель 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 ставить дефолтную.


Название: Re: QML проверка существования пути файла
Отправлено: IGHOR от Апрель 25, 2012, 15:24
если Error ставить дефолтную.

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

А вывод в консоли десятка ошибок "Cannot open: file:///".. не влияет на производительность? И можно как-то временно выключать вывод во время загрузки чтобы не засорять консоль?


Название: Re: QML проверка существования пути файла
Отправлено: Ubuntu_linux от Апрель 26, 2012, 00:05
так, для справки:
soure: status===Image.Error ? "default.png" : "001.png"


Название: Re: QML проверка существования пути файла
Отправлено: IGHOR от Апрель 26, 2012, 01:42
Ubuntu_linux, не катит, так как status===Image.Error можно проверить только после присванивания source картинки а не до этого.
Или я вас не правильно понял?


Название: Re: QML проверка существования пути файла
Отправлено: Ubuntu_linux от Апрель 26, 2012, 03:11
Ubuntu_linux, не катит, так как status===Image.Error можно проверить только после присванивания source картинки а не до этого.
Или я вас не правильно понял?
Можно статус проверять и до указания соурса картинки.


Название: Re: QML проверка существования пути файла
Отправлено: IGHOR от Апрель 27, 2012, 15:06
Можно статус проверять и до указания соурса картинки.
Но до указания соурса картинки status будет всегда одинаковым?


Название: Re: QML проверка существования пути файла
Отправлено: Ubuntu_linux от Апрель 28, 2012, 19:29
Можно статус проверять и до указания соурса картинки.
Но до указания соурса картинки status будет всегда одинаковым?
ДА, но он будет не Error...


Название: Re: QML проверка существования пути файла
Отправлено: IGHOR от Апрель 29, 2012, 15:57
ДА, но он будет не Error...
Но все-же будет всегда одинаковым пока картинке соурс не присвоить?
Ваш метод почему-то не работает, и я не понимаю как это должно работать, но интересно бы разобраться.
Одним словом проблема решена :)