рд╢реБрдн рджреЛрдкрд╣рд░ рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ рдореИрдВ рд▓реЛрдбрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдХреНрдпреВрдПрдордПрд▓ рд╕реЗ рдРрд╕реЗ рдШрдЯрдХ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░реВрдВрдЧрд╛ред
рдпрд╣ рдЖрдкрдХреЛ рдПрдХ рдХрдВрдЯреЗрдирд░ рдмрдирд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдЖрдк рдЖрд╡рд╢реНрдпрдХ рдХреНрдпреВрдПрдордПрд▓ рддрддреНрд╡ рд╕рдВрд▓рдЧреНрди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреА рд╕реНрдерд┐рддрд┐ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд╡рд┐рднрд┐рдиреНрди рддрддреНрд╡реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рдорд╛рдВрдЧ рдкрд░ рдФрд░ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЛ рдмрдЪрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╢рд╛рдпрдж рд╣реА рдХрднреА рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рднрд╛рдЧреЛрдВ рдХреЛ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ рдпреЛрдЧреНрдп рдмрдирд╛рддреЗ рд╣реИрдВред рд▓реЛрдбрд░ QML рдШрдЯрдХ рдХреЗ рд▓рд┐рдП рдПрдХ рдХрдВрдЯреЗрдирд░ рд╣реИ рдФрд░ рд╕реНрд╡рдпрдВ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдореИрдВ QtQuick 2.0 рдХреЗ рдПрдХ рдШрдЯрдХ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдЬреЛ Qt рдкрд╛рдВрдЪрд╡реЗрдВ рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реИред рдкрд╣рд▓реЗ рдХреЗ рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ, рдпрд╣ рдШрдЯрдХ рднреА рд╣реИ, рд▓реЗрдХрд┐рди рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдереЛрдбрд╝реА рдХрдо рд╣реИред
рд▓реЛрдбрд░ рдХреЗ рд▓рд┐рдП рд╕рд╛рдордЧреНрд░реА рд╕реЗрдЯ рдХрд░рдирд╛
рд▓реЛрдбрд░ рдХреА рд╕рд╛рдордЧреНрд░реА рдХреЗ рд░реВрдк рдореЗрдВ, рдЖрдк рдпрд╛ рддреЛ рдкрде рдХреЛ qml-file рдпрд╛ рдШрдЯрдХ рдкрд░ рд╕реЗрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЗрди рддрд░реАрдХреЛрдВ рдкрд░ рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВред
1. qml рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдкрде
рд╕реНрд░реЛрдд рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкрде рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдпрд╣ рдпрд╛ рддреЛ рд╕реНрдерд╛рдиреАрдп рдлрд╝рд╛рдЗрд▓ рдпрд╛ рдиреЗрдЯрд╡рд░реНрдХ рд╕реЗ рдлрд╝рд╛рдЗрд▓ url рдХрд╛ рдкрде рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдорд╛рд░реНрдЧ рднреА рдкреВрд░реНрдг рдФрд░ рд╕рд╛рдкреЗрдХреНрд╖ рджреЛрдиреЛрдВ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред
рдПрдХ рдЙрджрд╛рд╣рд░рдг рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ рдЬреЛ рд╡рд┐рдВрдбреЛ рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рдорд╛рдЙрд╕ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рдХреЗ рдкреГрд╖реНрдарднреВрдорд┐ рдХреЛ рдмрджрд▓рддрд╛ рд╣реИред
main.qml:
import QtQuick 2.0 Item { id: main property int backgroundNumber: 1 width: 360 height: 360 Loader { id: background anchors.fill: parent source: "Background_1.qml" } MouseArea { anchors.fill: parent onClicked: { background.source = (backgroundNumber == 1 ? "Background_2.qml" : "Background_1.qml") backgroundNumber = (backgroundNumber == 1 ? 2 : 1) } } }
Background_1.qml
import QtQuick 2.0 Rectangle { color: "black" }
Background_2 .qml:
import QtQuick 2.0 Rectangle { color: "yellow" }
рдЗрд╕ рд╡рд┐рдзрд┐ рдХрд╛ рдПрдХ рдлрд╛рдпрджрд╛ рд╣реИред Qml рдШрдЯрдХ рд╕реЗ рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдирд╛рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, qml рдЗрдВрдЬрди рдХреЛ рдкрд╣рд▓реЗ рдЗрд╕реЗ рд╕рдВрдХрд▓рд┐рдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдпрджрд┐ рд╣рдо рд╕реНрд░реЛрдд рд╕реНрдерд╛рдкрд┐рдд рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдХреБрдЫ рднреА рд╕рдВрдХрд▓рд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдХреНрд░рдорд╢рдГ рдЙрди рд╡рд╕реНрддреБрдУрдВ рдХреЗ рд▓рд┐рдП рдЬрд┐рдиреНрд╣реЗрдВ рд╣рдореЗрд╢рд╛ рдЬрд╝рд░реВрд░рдд рдирд╣реАрдВ рд╣реЛрддреА рд╣реИ рдФрд░ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдирд╣реАрдВ рдмрдирд╛рдИ рдЬрд╛рддреА рд╣реИрдВ, рдпрд╣ рд╡рд┐рдзрд┐ рд╕рдмрд╕реЗ рдЙрдкрдпреБрдХреНрдд рд╣реИред
2. рдШрдЯрдХ
рдЖрдк рд▓реЛрдбрд░ рдХреЗ рджрд╛рдпрд░реЗ рдореЗрдВ рдПрдХ рдШрдЯрдХ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕реЗ sourceComponent рд╕рдВрдкрддреНрддрд┐ рдХреЗ рд░реВрдк рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЪреВрдВрдХрд┐ рд╣рдо рдПрдХ рдШрдЯрдХ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рдХреНрдпреВрдПрдордПрд▓ рдЗрдВрдЬрди рдЗрд╕реЗ рд╕рдВрдХрд▓рд┐рдд рдХрд░рддрд╛ рд╣реИ, рднрд▓реЗ рд╣реА рд╣рдордиреЗ рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреА рдкреВрд░реА рдЕрд╡рдзрд┐ рдХреЗ рд▓рд┐рдП рдЗрд╕рд╕реЗ рдХреЛрдИ рд╡рд╕реНрддреБ рдХрднреА рдирд╣реАрдВ рдмрдирд╛рдИ рд╣реЛ, рдЬреЛ рдХрд┐ рдПрдХ рдЦрд╛рдореА рд╣реИред рдЙрд╕реА рд╕рдордп, рдЪреВрдВрдХрд┐ рдШрдЯрдХ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╕рдВрдХрд▓рд┐рдд рд╣реИ, рдЖрдкрдХреЛ рдХреЗрд╡рд▓ рдПрдХ рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЬреЛ рддреЗрдЬ рд╣реИред рдпрджрд┐ рдЖрдкрдХреЛ рдЕрдХреНрд╕рд░ рд╡рд┐рднрд┐рдиреНрди рдШрдЯрдХреЛрдВ рдХреЗ рдмреАрдЪ рд░рд╛рдЬреНрдпреЛрдВ рдХреЛ рд╕реНрд╡рд┐рдЪ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рддреЛ рдпрд╣ рд╡рд┐рдзрд┐ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдЕрдиреБрдХреВрд▓ рд╣реИред рдЙрд╕реА рд╕рдордп, рдШрдЯрдХ рдлрд╝рд╛рдЗрд▓ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ рдХреА рдХреЛрдИ рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рдЬреЛ рдШрдЯрдХ рдХреЛ рдбрд┐рд╕реНрдХ рдкрд░ рд╕реНрдерд╛рдиреАрдп рдлрд╝рд╛рдЗрд▓ рд╕реЗ рдбрд╛рдЙрдирд▓реЛрдб рдирд╣реАрдВ рдХрд┐рдП рдЬрд╛рдиреЗ рдкрд░, рд▓реЗрдХрд┐рди рдиреЗрдЯрд╡рд░реНрдХ рд╕реЗ рдбрд╛рдЙрдирд▓реЛрдб рдХрд┐рдП рдЬрд╛рдиреЗ рдкрд░ рдПрдХ рдФрд░ рдореВрд░реНрдд рд▓рд╛рдн рд╣реЛ рд╕рдХрддрд╛ рд╣реИред
рдПрдХ рдЕрдиреНрдп рд╡рд┐рд╢реЗрд╖рддрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдШрдЯрдХ рдХреЛ рджрд┐рдП рдЧрдП qml-file рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рдлрд╝рд╛рдЗрд▓ рдХреА рд╕рд╛рдордЧреНрд░реА рднреА рджрд┐рдЦрд╛рдИ рджреЗрдЧреА рдФрд░ рдпрд╣ рдЗрд╕ рдлрд╝рд╛рдЗрд▓ рд╕реЗ рд╡рд╕реНрддреБрдУрдВ рдХреЗ рдЧреБрдгреЛрдВ рдФрд░ рдХрд╛рд░реНрдпреЛрдВ рддрдХ рдкрд╣реБрдВрдЪ рд╕рдХрддреА рд╣реИред
main.qml:
import QtQuick 2.0 Item { id: main property int backgroundNumber: 1 property color backgroundColor1: "black" property color backgroundColor2: "yellow" width: 360 height: 360 Loader { id: background anchors.fill: parent sourceComponent: background_1 } MouseArea { anchors.fill: parent onClicked: { background.sourceComponent = (backgroundNumber == 1 ? background_2 : background_1) backgroundNumber = (backgroundNumber == 1 ? 2 : 1) } } Component { id: background_1 Rectangle { color: main.backgroundColor1 } } Component { id: background_2 Rectangle { color: main.backgroundColor2 } } }
рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рдореВрд▓ рдШрдЯрдХ (рдореБрдЦреНрдп) рдФрд░ рдЙрд╕рдХреЗ рдЧреБрдг рдкреГрд╖реНрдарднреВрдорд┐ 1 рдФрд░ рдкреГрд╖реНрдарднреВрдорд┐ 2 рдШрдЯрдХреЛрдВ рд╕реЗ рджрд┐рдЦрд╛рдИ рджреЗрддреЗ рд╣реИрдВред
3. рд╕реЗрдЯрд╕реЛрд░реНрд╕ ()
рдХреНрдпреВрдПрдордПрд▓ рдореЗрдВ рдПрдХ рд╡рд╕реНрддреБ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддреЗ рд╕рдордп, рдЖрдк рдЗрд╕рдХреЗ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдкреИрд░рд╛рдореАрдЯрд░ рд╕реЗрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд╕рд╛рде рд╣реА рдмрд╛рдЗрдВрдбрд┐рдВрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЙрдкрд░реЛрдХреНрдд рджреЛ рддрд░реАрдХреЛрдВ рд╕реЗ рд▓реЛрдбрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП рдПрдХ рдШрдЯрдХ рдХреЛ рд▓реЛрдб рдХрд░рддреЗ рд╕рдордп, рдпрд╣ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
QtQuick 2.0 (Qt 5.0) рдиреЗ рд╕реЗрдЯрд╕реЛрд░реНрд╕ рд╡рд┐рдзрд┐ рдкреЗрд╢ рдХреАред рдпрд╣ рдЖрдкрдХреЛ рдмрдирд╛рдИ рдЧрдИ рд╡рд╕реНрддреБ рдХреЗ рдЧреБрдгреЛрдВ рдХреЛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рджреВрд╕рд░реЗ рддрд░реНрдХ рдХреЗ рд░реВрдк рдореЗрдВ рдЖрд╡рд╢реНрдпрдХ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд╕рд╛рде рдПрдХ рдирд┐рдпрдорд┐рдд рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдСрдмреНрдЬреЗрдХреНрдЯ рдкрд╛рд╕ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред
рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд░реВрдк рдореЗрдВ, рдЕрд╕реНрдкрд╖реНрдЯрддрд╛ рд╕реЗрдЯ рдХрд░реЗрдВ, рдЕрд░реНрдерд╛рддред рдкрд╛рд░рджрд░реНрд╢рд┐рддрд╛ (рдЕрдзрд┐рдХ рд╕рдЯреАрдХ, рдЕрд╕реНрдкрд╖реНрдЯрддрд╛)ред
main.qml:
import QtQuick 2.0 Item { id: main property int backgroundNumber: 1 width: 360 height: 360 Loader { id: background anchors.fill: parent Component.onCompleted: setSource("Background_1.qml", { "opacity": 0.5 }) } MouseArea { anchors.fill: parent onClicked: { background.setSource(backgroundNumber == 1 ? "Background_2.qml" : "Background_1.qml", { "opacity": 0.5 }) backgroundNumber = (backgroundNumber == 1 ? 2 : 1) } } }
рддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдФрд░ рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рд▓реЛрдбрд┐рдВрдЧ
рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, рдШрдЯрдХ рдЬреЛ рдбрд┐рд╕реНрдХ рдкрд░ рд╕реНрдерд╛рдиреАрдп рдлрд╝рд╛рдЗрд▓ рдкрде рдХреЗ рд╕реНрд░реЛрдд рдкрде рдХреЗ рд░реВрдк рдореЗрдВ рд╕реЗрдЯ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ, рдЙрдиреНрд╣реЗрдВ рд╕рд┐рдВрдХреНрд░реЛрдирд╛рдЗрдЬрд╝ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрджрд┐ рдЖрдк рдиреЗрдЯрд╡рд░реНрдХ рд╕реЗ рдлрд╝рд╛рдЗрд▓ url рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╕реНрдерд┐рддрд┐ рд▓реЛрдбрд░ рдореЗрдВ рдмрджрд▓ рдЬрд╛рддреА рд╣реИред рд▓реЛрдб рдХрд░рдирд╛ рдФрд░ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдирд╛ рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рд╣реИред
рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдмреВрдЯ рдореЛрдб рдХреЛ рднреА рд╕рдЪ рдореЗрдВ рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рд╕рдВрдкрддреНрддрд┐ рд╕реЗрдЯ рдХрд░рдХреЗ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рд╕рдХреНрд░рд┐рдп рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдпрджрд┐ рдбрд╛рдЙрдирд▓реЛрдб рд╕рдордп рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рддреЛ рдбрд╛рдЙрдирд▓реЛрдб рдкреНрд░рдЧрддрд┐ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдХрд╛рдо рдореЗрдВ рдЖ рд╕рдХрддреА рд╣реИред рдкреНрд░рдЧрддрд┐ рд╕рдВрдкрддреНрддрд┐ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░реЗрдЧреА рдХрд┐ рдШрдЯрдХ рдХрд┐рддрдирд╛ рд▓реЛрдб рд╣реИ (0 рд╕реЗ 1 рддрдХ)ред
рдСрдмреНрдЬреЗрдХреНрдЯ рдПрдХреНрд╕реЗрд╕
рдмрдирд╛рдИ рдЧрдИ рд╡рд╕реНрддреБ рдХреЛ рдЖрдЗрдЯрдо рд╕рдВрдкрддреНрддрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХреНрд╕реЗрд╕ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдЖрдк рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рдЧреБрдгреЛрдВ рддрдХ рдкрд╣реБрдВрдЪ рд╕рдХрддреЗ рд╣реИрдВ (рдпрджрд┐ рд╕реЗрдЯрд╕реЛрд░реНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдСрдмреНрдЬреЗрдХреНрдЯ рдирд╣реАрдВ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдерд╛, рддреЛ рдпрд╣ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рд▓рд┐рдП рд╡рд╛рдВрдЫрд┐рдд рдЧреБрдгреЛрдВ рдХреЛ рд╕реЗрдЯ рдХрд░рдиреЗ рдХрд╛ рдПрдХрдорд╛рддреНрд░ рддрд░реАрдХрд╛ рд╣реИ)ред
рдЖрдк рди рдХреЗрд╡рд▓ рдХрд┐рд╕реА рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рд▓рд┐рдП рдЧреБрдг рд╕реЗрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдмрд▓реНрдХрд┐ рд╣реИрдВрдбрд▓рд░ рдХреЛ рдЙрд╕рдХреЗ рд╕рдВрдХреЗрддреЛрдВ рд╕реЗ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЙрд╕рдХреЗ рддрд░реАрдХреЛрдВ рдХреЛ рдХреЙрд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдХреЗрд╡рд▓ рдПрдХ рдЪреАрдЬ рдШрдЯрдХ рдХреЛ рд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрдВрддрдЬрд╛рд░ рдХрд░рдирд╛ рд╣реИред рдЖрдкрдХреЛ рддрдм рддрдХ рдЗрдВрддрдЬрд╛рд░ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдЬрдм рддрдХ рдХрд┐ рд╕реНрдерд┐рддрд┐ рдкреИрд░рд╛рдореАрдЯрд░ рд▓реЛрдбрд░ рдХреЗ рдмрд░рд╛рдмрд░ рдирд╣реАрдВ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред рд▓реЛрдб рд╕рд┐рдЧреНрдирд▓ рдкрд░ рд╣реИрдВрдбрд▓рд░ рдХреЛ рд░рдЦреЗрдВ рдпрд╛ рд╣реИрдВрдбрд▓рд░ рд▓рдЧрд╛рдПрдВред
рдПрдХ рдЫреЛрдЯреЗ рд╕реЗ рдЙрджрд╛рд╣рд░рдг рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВред
main.qml:
import QtQuick 2.0 Item { id: main width: 360 height: 360 Loader { id: background anchors.fill: parent asynchronous: true source: "Background_1.qml" onStatusChanged: console.log("status", status, "item", item) onLoaded: item.color = "green" } }
рдпрд╣рд╛рдБ рд╣рдореЗрдВ рдЖрдЙрдЯрдкреБрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рдорд┐рд▓рддрд╛ рд╣реИ:
status 2 item null
status 2 item null
status 1 item QQuickRectangle(0x95436f8)
рдирдВрдмрд░ 2 рд▓реЛрдбрд░ рдХреЗ рдорд╛рди рд╕реЗ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИред рд▓реЛрдбрд┐рдВрдЧ, 1 - рд▓реЛрдбрд░редрд░реЗрдбреНрдбреАред рдЖрдк рдЙрд╕ рд╡рд╕реНрддреБ рдХреЛ рдмрдирд╛рдП рдЧрдП рдСрдмреНрдЬреЗрдХреНрдЯ рдХреА рдУрд░ рднреА рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдЬрдм рдСрдмреНрдЬреЗрдХреНрдЯ рдХрд╛ рд▓реЛрдбрд┐рдВрдЧ рдкреВрд░рд╛ рд╣реЛ рдЧрдпрд╛ рдерд╛ред рдбрд╛рдЙрдирд▓реЛрдб рдкреВрд░рд╛ рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж, рдкреГрд╖реНрдарднреВрдорд┐ рдХрд╛ рд░рдВрдЧ рд╣рд░рд╛ рд╣реЛ рдЬрд╛рдПрдЧрд╛ред
рд╕рдВрдХреЗрддреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░реЗрдВ
рд╣реИрдВрдбрд▓рд░ рдХреЛ рд▓реЛрдбрд░ рдореЗрдВ рд▓реЛрдб рдХреА рдЧрдИ рд╡рд╕реНрддреБ рдХреЗ рд╕рд┐рдЧреНрдирд▓ рдкрд░ рд╕реЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдЗрд╕ рд╕рд┐рдЧреНрдирд▓ рдкрд░ рдХрдиреЗрдХреНрдЯ () рд╡рд┐рдзрд┐ рдХреЛ рдХреЙрд▓ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдФрд░ рд╣реИрдВрдбрд▓рд░ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдПрдХ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдкрд╛рд╕ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рд╣реИрдВрдбрд▓рд░ рдХреЛ рд╕рдВрдмрдВрдзрд┐рдд рдбрд┐рд╕реНрдХрдиреЗрдХреНрдЯ () рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╣рдЯрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдПрдХ рдЙрджрд╛рд╣рд░рдг рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВред
main.qml:
import QtQuick 2.0 Item { id: main width: 360 height: 360 Loader { id: container anchors.fill: parent source: "Mouse.qml" onLoaded: item.mouseClicked.connect(processMouse) Component.onDestruction: { if (item) { item.mouseClicked.disconnect(processMouse) } } } function processMouse() { console.log("mouse clicked!") } }
Mouse.qml:
import QtQuick 2.0 Item { id: m signal mouseClicked() MouseArea { anchors.fill: parent onClicked: m.mouseClicked() } }
рдХрдВрд╕реЛрд▓ рдореЗрдВ рд╡рд┐рдВрдбреЛ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рдХреЗ рдЯреЗрдХреНрд╕реНрдЯ рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реЛрдЧрд╛: "рдорд╛рдЙрд╕ рдХреНрд▓рд┐рдХ!"
рдпрд╣ рд╡рд┐рдзрд┐ рд╢рдХреНрддрд┐рд╢рд╛рд▓реА рд╣реИ рдФрд░ рдЖрдкрдХреЛ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреА рд╕реНрдерд┐рддрд┐ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд╣реИрдВрдбрд▓рд░ рд╕реЗрдЯ / рдирд┐рдХрд╛рд▓рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреА рд╣реИред рдЗрд╕рдХреЗ рд▓рд┐рдП рдХреАрдордд рдмрдврд╝рддреА рдЬрдЯрд┐рд▓рддрд╛, рдХреЛрдб рдХреА рдорд╛рддреНрд░рд╛ рдФрд░ рдХрдо рд╡рд┐рд╢реНрд╡рд╕рдиреАрдпрддрд╛ рд╣реИред рдЬрдм рд╕рдВрдХреЗрддреЛрдВ рдХрд╛ рдореИрдиреБрдЕрд▓ рдирд┐рдпрдВрддреНрд░рдг рдЖрд╡рд╢реНрдпрдХ рдирд╣реАрдВ рд╣реИ, рддреЛ рд╣рдо рдХрдиреЗрдХреНрд╢рдВрд╕ qml рдШрдЯрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд▓рдХреНрд╖реНрдп рд╕рдВрдкрддреНрддрд┐ рдХреЗ рд░реВрдк рдореЗрдВ, рд╣рдо рдЖрдЗрдЯрдо рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рд╣реИрдВрдбрд▓рд░ рд╕реЗрдЯ рдХрд░рддреЗ рд╣реИрдВ рдЬреИрд╕реЗ рдХрд┐ рд╣рдордиреЗ рдЙрдиреНрд╣реЗрдВ рддрддреНрд╡ рдореЗрдВ рд╣реА рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рд╣реИред
main.qml:
import QtQuick 2.0 Item { id: main width: 360 height: 360 Loader { id: container anchors.fill: parent source: "Mouse.qml" } Connections { target: container.item onMouseClicked: processMouse() } function processMouse() { console.log("mouse clicked!") } }
рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдпрд╣ рд╡рд┐рдзрд┐ рд╕рд░рд▓, рдЕрдзрд┐рдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдФрд░ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдХрдо рдкреНрд░рд╡рдг рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЗрд╕ рд╡рд┐рдзрд┐ рдХреЛ рдПрдХ рдШреЛрд╖рдгрд╛рддреНрдордХ рд╢реИрд▓реА рдореЗрдВ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рдпрд╣ рдЕрдирд┐рд╡рд╛рд░реНрдп рд╣реИ рдХрд┐ рдЬрдм рд╣рдо рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИрдВрдбрд▓рд░ рдХреЗ рд╕рд╛рде рд╕рдВрдХреЗрддреЛрдВ рдХреЛ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ, рддреЛ qml рдХреЗ рд▓рд┐рдП рдЕрдзрд┐рдХ рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХ рд╣реИред
рдШреЛрд╖рдгрд╛рддреНрдордХ рдФрд░ рдЕрдирд┐рд╡рд╛рд░реНрдп рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ
рдЙрдкрд░реЛрдХреНрдд рдЙрджрд╛рд╣рд░рдгреЛрдВ рдореЗрдВ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдХреБрдЫ рднреА рдЬрдЯрд┐рд▓ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдпрджрд┐ рдЖрдкрдХреЛ рдЙрди рд╡рд╕реНрддреБрдУрдВ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдЬреЛ рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рд░реВрдк рд╕реЗ рд▓реЛрдб рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ nontrivial рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдЖрдкрдХреЛ рдпрд╣ рдЙрдореНрдореАрдж рдирд╣реАрдВ рдХрд░рдиреА рдЪрд╛рд╣рд┐рдП рдХрд┐ qml рдЗрдВрдЬрди рдЙрдиреНрд╣реЗрдВ рдХрд┐рд╕реА рд╡рд┐рд╢реЗрд╖ рдЕрдиреБрдХреНрд░рдо рдореЗрдВ рд▓реЛрдб рдХрд░рддрд╛ рд╣реИ, рдЦрд╛рд╕рдХрд░ рдпрджрд┐ рд╡реЗ рдиреЗрдЯрд╡рд░реНрдХ рдкрд░ рдбрд╛рдЙрдирд▓реЛрдб рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред
рдЕрдиреБрднрд╡ рд╕реЗ, рдпрджрд┐ рдШреЛрд╖рд┐рдд рддрд░реАрдХреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИ, рддреЛ рдЙрдирдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдмреЗрд╣рддрд░ рд╣реИред рдпрд╣ рди рдХреЗрд╡рд▓ рд╕рдВрдХреЗрддреЛрдВ рдкрд░ рд▓рд╛рдЧреВ рд╣реЛрддрд╛ рд╣реИ, рдмрд▓реНрдХрд┐ рдЙрди рд╡рд╕реНрддреБрдУрдВ рдХреЗ рдЧреБрдгреЛрдВ рдХреЗ рд▓рд┐рдП рднреА рд╣реЛрддрд╛ рд╣реИ, рдЬреЛ рд╕реЗрдЯрд╕реЛрд░реНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕реЗрдЯ рдХрд┐рдП рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ, рдмрдЬрд╛рдп рдЗрд╕рдХреЗ рдХрд┐ рд╡реЗ рдШрдЯрдХ рдХреЛ рд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░реЗрдВ рдФрд░ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдЙрдиреНрд╣реЗрдВ рдЖрдЗрдЯрдо рд╕рдВрдкрддреНрддрд┐ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕реЗрдЯ рдХрд░реЗрдВ (рдХреНрдпреВрдЯреА рдореЗрдВ рдЗрд╕ рд╡рд┐рдзрд┐ рдХрд╛ рдХреЛрдИ рдЪреМрдерд╛ рд╕рдВрд╕реНрдХрд░рдг рдирд╣реАрдВ рд╣реИ, рдпрд╣ рдХреЗрд╡рд▓ рд╡рд╣рд╛рдВ рд╣реИ)ред
рдЧреИрд░-рджреГрд╢реНрдп рдЖрдЗрдЯрдо рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдирд╛
QtQuick 2.0 рдореЗрдВ, рд▓реЛрдбрд░ рдиреЗ рди рдХреЗрд╡рд▓ рджреГрд╢реНрдп рддрддреНрд╡реЛрдВ рдХреЛ рд▓реЛрдб рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдЬреЛрдбрд╝реАред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЖрдк QtObject рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдПрдХ рддрддреНрд╡ рдХреЛ рдЗрд╕ рддрд░рд╣ рд╕реЗ рд▓реЛрдб рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
main.qml:
import QtQuick 2.0 Item { id: main width: 360 height: 360 Loader { id: container anchors.fill: parent source: "Element.qml" onLoaded: console.log(item.text) } }
Element.qml:
import QtQuick 2.0 QtObject { property string text: "hello!" }
рдмреВрдЯ рдХрд░рддреЗ рд╕рдордп, "рд╣реИрд▓реЛ!" рдХрдВрд╕реЛрд▓ рдореЗрдВ рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реЛрдЧрд╛ред
рдПрдХ рдЫреЛрдЯрд╛ рд╕рд╛рд░рд╛рдВрд╢
рд▓реЛрдбрд░ рджреЛрдиреЛрдВ рдЕрдиреНрдп рдлрд╝рд╛рдЗрд▓реЛрдВ рд╕реЗ qml рдШрдЯрдХреЛрдВ рдХреЛ рд▓реЛрдб рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдФрд░ рд╡рд░реНрддрдорд╛рди qml рдлрд╝рд╛рдЗрд▓ рдХреЗ рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдШрдЯрдХреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдЪреБрдиреА рдЧрдИ рд╡рд┐рдзрд┐ рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рдПрдХ рдмрд╛рд░ рдирд┐рд░реНрдорд╛рдг рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рд╣рд┐рд╕реНрд╕реЗ рдХреЗ рдирд┐рд╖реНрдкрд╛рджрди рдХреЛ рд╕реНрдердЧрд┐рдд рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИ рдФрд░ рдЗрд╕ рддрд░рд╣ рд╡рд╕реНрддреБрдУрдВ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЛ рдЧрддрд┐ рдкреНрд░рджрд╛рди рдХрд░рдирд╛, рдпрд╛ рдХрд┐рд╕реА рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рднреА рдСрдкрд░реЗрд╢рдиреЛрдВ рдХреЛ рд╕реНрдердЧрд┐рдд рдХрд░рдирд╛ рдЬрдм рддрдХ рдХрд┐ рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рди рд╣реЛред
рдЗрд╕ рддрдереНрдп рдХреЗ рдмрд╛рд╡рдЬреВрдж рдХрд┐ qml рдПрдХ рдШреЛрд╖рд┐рдд рднрд╛рд╖рд╛ рд╣реИ, рдХрдИ рдЪреАрдЬреЗрдВ рдЕрдирд┐рд╡рд╛рд░реНрдп рд░реВрдк рд╕реЗ рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИ, рдЬреЛ рдХреБрдЫ рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдореЗрдВ рдЙрдкрдпреЛрдЧреА рд╕рд╛рдмрд┐рдд рд╣реЛ рд╕рдХрддреА рд╣реИрдВ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдХреБрдЫ рдЬрдЯрд┐рд▓рддрд╛ рдХреА рдХреАрдордд рдкрд░ рдФрд░ рдХреЛрдб рдХреА рдорд╛рддреНрд░рд╛ рдореЗрдВ рд╡реГрджреНрдзрд┐ред рдХреНрдпреВрдЯреА рдХреЗ рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдирд╣реАрдВ, рдпрд╣ рд╡рд┐рдзрд┐ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреА рд╕реАрдорд╛рдУрдВ рдХреЛ рдмрд╛рдпрдкрд╛рд╕ рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░ рд╕рдХрддреА рд╣реИред