2016-01-05 2 views
0

На одной из моих страниц QML есть 1 кнопка назад и список, содержащий изображение и текст в каждой строке. Я использую тестовое изображение для кнопки «Назад» и «Список». Кнопка «Назад» может отображать изображение, но listview жалуется на «QML-изображение: невозможно открыть: qrc: /../../../ Users/Jerry/Desktop/LA.png».QML не может открывать изображение более одного раза

Оба изображения и все файлы QML находятся в разделе Ресурсы. Вот код.

import QtQuick 2.0 
import QtQuick.Controls 1.2 

Rectangle { 
anchors.fill: parent 

Item { 
    id: advancedBackground 
    anchors.fill: parent 

    Button { 
     id: backButton 
     width: 25 
     height: 25 
     anchors.top: parent.top 
     anchors.topMargin: 25 
     anchors.left: parent.left 
     anchors.leftMargin: 25 
     opacity: backMouseArea.containsMouse ? 0.9 : 0.1 
     MouseArea { 
      id: backMouseArea 
      anchors.fill: parent 
      hoverEnabled: true 
      onClicked: { 
       leftArrow.visible = true; 
       rightArrow.visible = false; 
       stackView.pop(); 
      } 
     } 
     Image { 
      anchors.fill: parent 
      fillMode: Image.PreserveAspectFit 
      // image works fine here 
      source: "qrc:/../../../Users/Jerry/Desktop/LA.png" 
     } 
    } 

    ListView{ 
     id: listView 
     anchors.rightMargin: 40 
     anchors.leftMargin: 40 
     anchors.bottomMargin: 30 
     anchors.topMargin: 90 
     anchors.fill: parent 

     delegate: Item { 
      x: 5 
      width: parent.height 
      height: 40 

      Image { 
       height: parent.height; width: parent.height 
       anchors.left: parent.left 
       fillMode: Image.PreserveAspectFit 
       source: imageSource 
      } 

      Text { 
       text: name 
       height: parent.height 
       width: parent.width 
       anchors.left: parent.left 
       anchors.leftMargin: 50 
       anchors.centerIn: parent 
       font.bold: true 
       anchors.horizontalCenter: parent.horizontalCenter 
      } 
     } 
     model: ListModel { 
      ListElement { 
       name: "test1" 
       // image doesn't work here 
       imageSource: "qrc:/../../../Users/Jerry/Desktop/LA.png" 
      } 

      ListElement { 
       name: "test2" 
       // image doesn't work here 
       imageSource: "qrc:/../../../Users/Jerry/Desktop/LA.png" 
      } 
     } 
    } 
} 

}

Под ресурсами, она включает в себя AdvancedPages.qml и ../../../Users/Jerry/Desktop/LA.png

+1

Я имею в виду, что путь должен быть как 'qrc:/images/LA.png'. Просто попробуйте, и мы увидим, если это проблема. – Evgeny

+0

Это работает! Не могли бы вы объяснить немного больше, почему это работает? – Jerry

ответ

2

Я думаю, вы должны избавиться от относительного пути к вашему изображению. Путь должен быть как qrc:/images/LA.png.

+0

Не могли бы вы объяснить, почему? Спасибо – Jerry

+0

@ Джерри ответ основан только на моем опыте – Evgeny