Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. International
  3. Polish
  4. [QML] Property komponentu jako funkcja
Forum Updated to NodeBB v4.3 + New Features

[QML] Property komponentu jako funkcja

Scheduled Pinned Locked Moved Solved Polish
5 Posts 2 Posters 2.0k Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • D Offline
    D Offline
    demboo
    wrote on last edited by
    #1
    Item {
        property function callback: function() {}
    
        Button {
           onClicked: function() {
                // do something
                callback();
        }
    }
    

    W powyższym przykładzie chciałem przekazać ideę. Czy da się w jakiś sposób przekazać taki callback z rodzica do komponentu dziecka?

    Dzięki.

    1 Reply Last reply
    0
    • sierdzioS Offline
      sierdzioS Offline
      sierdzio
      Moderators
      wrote on last edited by
      #2

      Nie rozumiem idei ;-)

      Dziecko widzi wszystkie metody rodzica, więc nie trzeba callbacku - wystarczy normalnie odpalić metodę rodzica w onClicked. Funkcji nie trzeba deklarować jako property.

      (Z(:^

      1 Reply Last reply
      0
      • D Offline
        D Offline
        demboo
        wrote on last edited by demboo
        #3

        Ok. Chyba nie do końca się jasnow wyraziłem.
        Item ma być reużywalny, stąd idea callback'a, aby móc wstrzyknąć różne funkcje

        // plik MyItem.qml
        Item {
            property function onClickCallback: function() {}
        
            Button {
               onClicked: function() {
                    // do something
                    callback();
            }
        }
        
        // plik korzystający z MyItem
        Item {
            MyItem {
                onClickCallback: function() {
                    //do something
                }
            }
        }
        
        1 Reply Last reply
        0
        • sierdzioS Offline
          sierdzioS Offline
          sierdzio
          Moderators
          wrote on last edited by
          #4

          To jest kompletnie niepotrzebne. Funkcje JS można nadpisywać. Czyli:

          // plik MyItem.qml
          Item {
              function click() {}
          
              Button {
                 onClicked: {
                      // do something
                      click();
              }
          }
          
          // plik korzystający z MyItem
          Item {
              MyItem {
                  function click() {
                      //do something
                  }
              }
          }
          

          Powinno działać.

          (Z(:^

          1 Reply Last reply
          0
          • D Offline
            D Offline
            demboo
            wrote on last edited by
            #5

            Tak, dzięki. Działa.

            1 Reply Last reply
            0

            • Login

            • Login or register to search.
            • First post
              Last post
            0
            • Categories
            • Recent
            • Tags
            • Popular
            • Users
            • Groups
            • Search
            • Get Qt Extensions
            • Unsolved