2013-05-09 1 views
0

У меня есть изображение, отображаемое в диалоговом окне в моем приложении QML, и я хочу, чтобы иметь возможность изменить это изображение позже на использовании onClicked, которое я передаю функцией, чтобы проверить, переменная, которую я хочу в новом исходном URL, является одним из них, который я хочу.Как установить источник изображения вне компонента

Я пробовал только с помощью Image.source = "NEWURL", который не идет. Также идентификатор компонента, в котором находится изображение, и диалоговое окно, подобное: id.source = "neurl" - нет.

Как это сделать?

EDIT: добавлен код; и функция, а затем listitm используется для клика. Изображение представляет собой веб-образ, и я хочу, чтобы в URL-адресе было значение conncectedUser (которое является именем пользователя).

Здесь весь связанный код:

// Check if users is really a user, and if; show skin 
function checkCurrentUser(currentUser) { 
    console.debug('Debug: Check user "'+currentUser+'" if actually a user.') 

    if (currentUser == "Ingen online") { 
     currentUser = "Notch" // reset currentUser if pushed earlier 
     console.debug('Debug: It was not a real user. Showing '+currentUser+' instead') 
     Image.source = "http://blabla"+currentUser+"yesyes" 
    } 
    else { 
     console.debug('Debug: It was a real user.') 
     Image.source = "http://blabla"+currentUser+"yesyes" 
    } 
    return "http://blabla"+currentUser+"yesyes"" 
} 

      // the dialog I want to show with a image 
      Component { 
       id: userDialog 
       Dialog { 
        id: dialogueUser 
        title: i18n.tr("Image") 
        Image { 
         id: usersSkin 
         fillMode: Image.PreserveAspectFit 
         source: "URL" 
         sourceSize.height: 1200 
        } 

        Button { 
         text: i18n.tr("Close") 
         color: "red" 
         onClicked: PopupUtils.close(dialogueUser) 
        } 
       } 
       } 

    // and then the list containting each link, which on click should show the user image 
    ListView { 
        id: userList 
        width: parent.width 
        height: units.gu(5) 
        model: msmData 
        delegate: ListItem.Standard { 
         text: connectedUser 
         onClicked: { 
          console.debug('Debug: User clicked "'+connectedUser+'"') 
          checkCurrentUser(connectedUser) 
          PopupUtils.open(userDialog, userList) 
         } 
        } 
        header: ListItem.Header { text: i18n.tr("Connected Users") } 
        section.property: "type" 
        section.criteria: ViewSection.FullString 
        section.delegate: ListItem.Header { text: i18n.tr(section) } 
       } 
+0

'Я пробовал только с помощью Image.source =" NEWURL ", который не заходит Не могли бы вы объяснить, почему? –

+0

Hi Amit, ну изображение просто не появится. –

ответ

0

То, что я наконец-то было просто сбросьте переменную в URL-адресе изображения, а затем отобразите диалог. Работаю сейчас.

0

Я не уверен, если я правильно понял ваш вопрос, но я дам ему попробовать:

Component 
    { 
      id: userDialog 
      Dialog 
      { 
       property int sourceState : 1 
       id: dialogueUser 
       title: i18n.tr("Image") 
       Image 
       { 
        id: usersSkin 
        fillMode: Image.PreserveAspectFit 
        source: 1 == sourceState ? "OLDURL" : "NEWURL" 
        sourceSize.height: 1200 
       } 

       Button 
       { 
        text: i18n.tr("Close") 
        color: "red" 
        onClicked: 
        { 
         PopupUtils.close(dialogueUser) 
         dialogueUser.sourceState = 0        
        } 
       } 
       } 
    } 
+0

Спасибо, но мне нужно вставить переменную в новый URL-адрес на основе щелчка пользователя, который происходит из элемента делегированного XML-списка. –