2013-07-12 1 views
2

У меня есть файл QML, вот исходный код:протокол C неизвестна ошибка в QML

import QtQuick 2.0 

Image 
{ 
    id: imageIcon; 

    width: 100; 
    height: 100; 

    source: 'C:/Users/Public/Pictures/Sample Pictures/Chrysanthemum.jpg'; 
} 

Когда я показываю его на QQuickView я получаю эту ошибку:

QML Image: Protocol "c" is unknown

Я запустив код в Windows 7, если это уместно.

Каков правильный формат URL-адреса?

ответ

5

Похоже, источник должен использовать правильно отформатированный URL: это либо ожидает file:// схему или qrc:// (для вещей внутри Qt ресурсов)

Разбор файлов пытается использовать «C» протокол (от C: /), которая неизвестна: попробуйте

source: 'file:///C:/Users/Public/Pictures/Sample Pictures/Chrysanthemum.jpg'; 

См: http://harmattan-dev.nokia.com/docs/platform-api-reference/xml/daily-docs/libqt4/qml-url.html

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

+0

Фактически qrc работает для меня, если я даю URL-адрес, например, «qrc: /img/vista-manage-folders-icon.jpg», он работает. Однако я хочу дать url динамически, потому что я собираюсь использовать его для файлового проводника, поэтому файлы изображений не будут определены в qrc. – otto

+0

Тогда это не статично, а динамично. У Native Qt (C++) есть способ преобразования локальных файлов в URL-адрес: http://harmattan-dev.nokia.com/docs/library/html/qt4/qurl.html#fromLocalFile – Bruce

+0

Это сработало, спасибо большое. – otto