рд▓реЗрдЦреЛрдВ рдХреА
рдЗрд╕ (
рдЕрдиреБрд╡рд╛рдж рдореЗрдВ рднрд╛рдЧ 2 ) рд╢реНрд░реГрдВрдЦрд▓рд╛ рдореЗрдВ, рд╣рдо QML рдЗрдВрдЬрди рдХреЗ рд╣реБрдб рдХреЗ рдиреАрдЪреЗ рджреЗрдЦреЗрдВрдЧреЗ рдФрд░ рдЗрд╕рдХреЗ рдЖрдВрддрд░рд┐рдХ рдХрд╛рд░реНрдп рдХреА рдХреБрдЫ рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЛ рдкреНрд░рдХрдЯ рдХрд░реЗрдВрдЧреЗред рд▓реЗрдЦ QtQuick, QtQuick 2.0 рдХреЗ Qt5 рд╕рдВрд╕реНрдХрд░рдг рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИрдВред
рдЕрдзрд┐рдХрд╛рдВрд╢ рд▓реЛрдЧ рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ QML рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рддрддреНрд╡ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ C ++ рд╡рд░реНрдЧ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИред рдЬрдм QML рдлрд╝рд╛рдЗрд▓ рд▓реЛрдб рдХреА рдЬрд╛рддреА рд╣реИ, рддреЛ QML рдЗрдВрдЬрди рдХрд┐рд╕реА рддрд░рд╣ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╕рднреА рддрддреНрд╡реЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ C ++ рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдирд╛рддрд╛ рд╣реИред рдЗрд╕ рдкреЛрд╕реНрдЯ рдореЗрдВ, рд╣рдо рджреЗрдЦреЗрдВрдЧреЗ рдХрд┐ QML рдЗрдВрдЬрди рдПрдХ рдЯреЗрдХреНрд╕реНрдЯ рдлрд╝рд╛рдЗрд▓ рдХреЛ рдкрдврд╝рдиреЗ рд╕реЗ рдХреИрд╕реЗ рдЖрдЧреЗ рдмрдврд╝рддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ C ++ рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдХрд╛ рдкреВрд░рд╛ рдкреЗрдбрд╝ рд╢рд╛рдорд┐рд▓ рд╣реИред рдХреНрдпреВрдПрдо рдкреНрд░рд▓реЗрдЦрди рдореЗрдВ рдПрдХ
рдЦрдВрдб рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдХреНрдпреВрдПрдордПрд▓ рдФрд░ рд╕реА ++ рдХреА рдмрд╛рддрдЪреАрдд рдХрд╛ рд╡реНрдпрд╛рдкрдХ рд╡рд┐рд╡рд░рдг рд╣реИ, рдЬрд┐рдирдореЗрдВ рд╕реЗ рдкрдврд╝рдирд╛ рд╕рдордп рдмрд┐рддрд╛рдиреЗ рдХреЗ рд▓рд╛рдпрдХ рд╣реИред рд▓реЗрдЦреЛрдВ рдХреА рдЗрд╕ рд╢реНрд░реГрдВрдЦрд▓рд╛ рдореЗрдВ, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдиреЗ рдкрдврд╝рд╛ рд╣реИ рдФрд░ рд╕рдордЭрддрд╛ рд╣реИ рдХрд┐ рдкреНрд░рд▓реЗрдЦрди рдореЗрдВ рдХреНрдпрд╛ рд╡рд░реНрдгрд┐рдд рд╣реИред
рдЙрджрд╛рд╣рд░рдг
рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ, рд╣рдо рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗ рдЬреЛ рдХреБрдЫ рд╡рд┐рд╢реЗрд╖ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕рдореЗрдВ QML рдХреЗ рдХреБрдЫ рджрд┐рд▓рдЪрд╕реНрдк рднрд╛рдЧ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ:
import QtQuick 2.0 Rectangle { id: root width: 360 height: width + 50 color: "lightsteelblue" property alias myWidth: root.width property int counter: 1 function reactToClick() { root.counter++ } Text { id: text text: qsTr("Hello World: " + counter) anchors.centerIn: parent } MouseArea { id: mouseArea anchors.fill: parent onClicked: { reactToClick() } } }
рдЗрд╕ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рддреАрди рддрддреНрд╡ рд╣реЛрддреЗ рд╣реИрдВ: рдЖрдпрдд, рдкрд╛рда рдФрд░ рдорд╛рдЙрд╕рдЖрдпрд░ред рд╡реЗ C ++ рдХрдХреНрд╖рд╛рдУрдВ
QQuickRectangle ,
QQuickText рдФрд░
QQuickMouseArea рдХреЗ рдЕрдиреБрд░реВрдк рд╣реИрдВ ред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдпреЗ рд╡рд░реНрдЧ рдХреЗрд╡рд▓ QML рдХреЛ рдирд┐рд░реНрдпрд╛рдд рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ, рдирд┐рдЬреА рд╣реЛрддреЗ рд╣реИрдВ, рдФрд░ C ++ рд╕реЗ рд╕реАрдзреЗ Qt рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рд╕реБрд▓рдн рдирд╣реАрдВ рд╣реЛрддреЗ рд╣реИрдВред рддрддреНрд╡реЛрдВ рдХреЛ рд╕реНрдХреНрд░реАрди рдкрд░
QML рд╕реАрдирдЧреНрд░рд╛рдл (
QML рджреГрд╢реНрдп рдЯреНрд░реА) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ OpenGL рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рддреИрдпрд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЬрд┐рд╕ рдХреНрд░рдо рдореЗрдВ рдИрд╡реЗрдВрдЯ
рддреИрдпрд╛рд░ рдФрд░ рд╕рдВрд╕рд╛рдзрд┐рдд
рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ, рд╡рд╣
QQuickView рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд┐рдпрд╛
рдЬрд╛рддрд╛ рд╣реИ ред рд╡рди-рдЯреВ-рд╡рди QML рдлрд╝рд╛рдЗрд▓ рдЬреЗрдирд░реЗрдЯ рдХреА рдЧрдИ C ++ рдСрдмреНрдЬреЗрдХреНрдЯ рдЯреНрд░реА рд╕реЗ рдореЗрд▓ рдЦрд╛рддреА рд╣реИ, рдЬрд┐рд╕реЗ Qt KDAB рдЯреАрдо рджреНрд╡рд╛рд░рд╛ рд╡рд┐рдХрд╕рд┐рдд рдЯреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЬрд╛рдВрдЪрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЬрд┐рд╕реЗ
рдЧреИрдорд╛рд░рд╛рдп рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред

рдЬреИрд╕рд╛ рдХрд┐ рдЕрдкреЗрдХреНрд╖рд┐рдд рдерд╛, QQuickMouseArea рдФрд░ QQuickText рдХреНрд▓рд╛рд╕реЗрдЬ рдСрдмреНрдЬреЗрдХреНрдЯ рдЯреНрд░реА рдореЗрдВ рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реЛрддреЗ рд╣реИрдВред рд▓реЗрдХрд┐рди QQuickRectangle_QML_0 рдХреНрдпрд╛ рд╣реИ? рдРрд╕рд╛ C ++ рд╡рд░реНрдЧ рдХреЗрд╡рд▓ Qt рдХреЗ рд╕реНрд░реЛрдд рдХреЛрдб рдореЗрдВ рдореМрдЬреВрдж рдирд╣реАрдВ рд╣реИ! рд╣рдо рдмрд╛рдж рдХреЗ рдкрджреЛрдВ рдореЗрдВ рдЗрд╕ рдкрд░ рд▓реМрдЯ рдЖрдПрдВрдЧреЗ, рдЕрднреА рдХреЗ рд▓рд┐рдП, рд╣рдо рдмрд╕ рдпрд╣ рдорд╛рди рд▓реЗрддреЗ рд╣реИрдВ рдХрд┐ QQuickRectangle рдСрдмреНрдЬреЗрдХреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
рдЖрдЗрдП рдЖрдЧреЗ рдмрдврд╝рддреЗ рд╣реИрдВ рдФрд░
QML рдкреНрд░реЛрдлрд╛рдЗрд▓рд░ рдореЗрдВ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЪрд▓рд╛рддреЗ рд╣реИрдВ:

рдЬреИрд╕рд╛ рдХрд┐ рд╣рдо рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рд╕рдордп рдХрд╛ рд╢реЗрд░ рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рдирд┐рд░реНрдорд╛рдг рдЪрд░рдг рдореЗрдВ рдЪрд▓рд╛ рдЬрд╛рддрд╛ рд╣реИред рдФрд░ рдХрд╛рдлреА рдереЛрдбрд╝рд╛ - рдбреНрд░рд╛рдЗрдВрдЧ (рдкреЗрдВрдЯрд┐рдВрдЧ) рдХреЗ рдЪрд░рдг рддрдХ, рдЬрд┐рд╕рдХреЗ рдкрд░рд┐рдгрд╛рдо рд╣рдо рд╕реНрдХреНрд░реАрди рдкрд░ рджреЗрдЦрддреЗ рд╣реИрдВред рд▓реЗрдХрд┐рди рд╕рдВрдХрд▓рди рдХрд╛ рдЪрд░рдг рдХреНрдпрд╛ рд╣реИ? рдХреНрдпрд╛ рдЗрд╕рдХрд╛ рдорддрд▓рдм рдорд╢реАрди рдпрд╛ рдмрд╛рдЗрдЯ рдХреЛрдб рд╣реИ? рдЖрдЗрдП рдлрд╛рдЗрд▓ рдЕрдкрд▓реЛрдб рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдкрд░ рдереЛрдбрд╝рд╛ рдЧрд╣рд░рд╛рдИ рд╕реЗ рдЧреМрд░ рдХрд░реЗрдВред
QML рдлрд╝рд╛рдЗрд▓ рд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рдЪрд░рдг
QML рдлрд╝рд╛рдЗрд▓ рдХреЛ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ рдХреЛ 3 рд╕реНрд╡рддрдВрддреНрд░ рдЪрд░рдгреЛрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЬрд┐рд╕реЗ рд╣рдо рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╡рд░реНрдЧреЛрдВ рдореЗрдВ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВрдЧреЗ:
- рдкрд╛рд░реНрд╕рд┐рдВрдЧ (рд╡рд┐рд╢реНрд▓реЗрд╖рдг)
- рд╕рдВрдХрд▓рди (рд╕рдВрдХрд▓рди)
- рдмрдирд╛рдирд╛ (рдирд┐рд░реНрдорд╛рдг)
рдкрджрдЪреНрдЫреЗрдж
рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, QML рдлрд╝рд╛рдЗрд▓ QQmlScript :: Parser рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкрд╛рд░реНрд╕ рдХреА рдЧрдИ рд╣реИред рдЕрдзрд┐рдХрд╛рдВрд╢ рдЖрдВрддрд░рд┐рдХ рдкрд╛рд░реНрд╕рд░ рдирд┐рдпрдо рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рд╡реНрдпрд╛рдХрд░рдг рдлрд╝рд╛рдЗрд▓ рд╕реЗ рдЙрддреНрдкрдиреНрди рд╣реЛрддреЗ рд╣реИрдВред рд╣рдорд╛рд░реЗ рдЙрджрд╛рд╣рд░рдг рд╕реЗ рд╕рд╛рд░ рд╕рд┐рдВрдЯреЗрдХреНрд╕ рдЯреНрд░реА (рдПрдПрд╕рдЯреА) рдЗрд╕ рддрд░рд╣ рджрд┐рдЦреЗрдЧрд╛:

(рдЪрд┐рддреНрд░ рдЧреНрд░реЗрд╡рд┐рдЬрд╝ рдФрд░ рдЗрд╕
рдкреИрдЪ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдерд╛)
рдкреНрд░рд╛рд░рдВрдн рдореЗрдВ, рдПрдПрд╕рдЯреА рдХрд╛рдлреА рдирд┐рдореНрди рд╕реНрддрд░ рдкрд░ рдФрд░ рдЕрдкрдиреЗ рдХрд╛рдо рдХреЗ рдЕрдЧрд▓реЗ рдЪрд░рдг рдореЗрдВ, рдЙрдЪреНрдЪ рд╕реНрддрд░ рдкрд░, рдпрд╣
рд╡рд╕реНрддреБрдУрдВ (рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕) ,
рдЧреБрдгреЛрдВ (рдЧреБрдг) рдФрд░
рдореВрд▓реНрдпреЛрдВ (рдореВрд▓реНрдпреЛрдВ) рдХреА рд╕рдВрд░рдЪрдирд╛рдУрдВ рдореЗрдВ рдмрджрд▓ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣
рдПрдПрд╕рдЯреА :: рдЖрдЧрдВрддреБрдХ рджреНрд╡рд╛рд░рд╛ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕ рд╕реНрддрд░ рдкрд░, рдСрдмреНрдЬреЗрдХреНрдЯ QML рддрддреНрд╡реЛрдВ рдФрд░ "рд░рдВрдЧ" рдФрд░ "lightsteelblue" рдЬреИрд╕реЗ рдкреНрд░реЙрдкрд░реНрдЯреА / рд╡реИрд▓реНрдпреВ рдЬреЛрдбрд╝реЗ, QML рддрддреНрд╡реЛрдВ рдХреЗ рдбреЗрдЯрд╛ рдЧреБрдгреЛрдВ рдФрд░ рдореВрд▓реНрдпреЛрдВ рдХреЗ рдЕрдиреБрд░реВрдк рд╣реИрдВред рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдЗрд╕ рд╕реНрддрд░ рдкрд░ onClicked рдЬреИрд╕реЗ рд╕рд┐рдЧреНрдирд▓ рд╣реИрдВрдбрд▓рд░ рд╕рд┐рд░реНрдл рд╕рдВрдкрддреНрддрд┐ / рдореВрд▓реНрдп рдЬреЛрдбрд╝реЗ рд╣реИрдВ, рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рдореВрд▓реНрдп рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рд╢рд░реАрд░ рд╣реИред
рд╕рдВрдХрд▓рди
рд╕рд┐рджреНрдзрд╛рдВрдд рд░реВрдк рдореЗрдВ, рд╡рд╕реНрддреБрдУрдВ, рдЧреБрдгреЛрдВ рдФрд░ рдореВрд▓реНрдпреЛрдВ рдХреА рд╕рдВрд░рдЪрдирд╛ рд╣реЛрдиреЗ рд╕реЗ, рд╣рдо рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЗрди рдХреНрдпреВрдПрдордПрд▓ рддрддреНрд╡реЛрдВ рд╕реЗ рдЬреБрдбрд╝реЗ рд╕реА ++ рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рдЙрдиреНрд╣реЗрдВ рдЙрдкрдпреБрдХреНрдд рдорд╛рди рдЕрд╕рд╛рдЗрди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдСрдмреНрдЬреЗрдХреНрдЯ, рдЧреБрдг рдФрд░ рдорд╛рди рдЕрднреА рднреА рдмрд╣реБрдд рдХреНрд░реВрдб рд╣реИрдВ, рдФрд░ C ++ рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдмрдирд╛рдП рдЬрд╛рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдХреБрдЫ рдкреЛрд╕реНрдЯ-рдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдкреЛрд╕реНрдЯ-рдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ
QQmlCompiler рдСрдмреНрдЬреЗрдХреНрдЯ рджреНрд╡рд╛рд░рд╛ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреЛ рдмрддрд╛рддрд╛ рд╣реИ рдХрд┐ рд╣рдорд╛рд░реЗ рдкреНрд░реЛрдлрд╛рдЗрд▓рд░ рдореЗрдВ "рд╕рдВрдХрд▓рди" рдЪрд░рдг рдХрд╛ рдХреНрдпрд╛ рдорддрд▓рдм рд╣реИред рдХрдВрдкрд╛рдЗрд▓рд░ рджрд┐рдП рдЧрдП QML рдлрд╝рд╛рдЗрд▓ рдХреЗ рд▓рд┐рдП рдПрдХ QQmlCompiledData рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдирд╛рддрд╛ рд╣реИред
QQmlCompiledData рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ рдФрд░ рдЗрд╕рдореЗрдВ рд╕реЗ C ++ рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдирд╛рдирд╛ рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕, рдкреНрд░реЙрдкрд░реНрдЯреАрдЬрд╝ рдФрд░ рд╡реИрд▓реНрдпреВрдЬрд╝ рдХреЗ рд╕рд╛рде рд╕реАрдзреЗ рдХрд╛рдо рдХрд░рдиреЗ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдмрд╣реБрдд рддреЗрдЬрд╝ рд╣реИред рдЬреИрд╕рд╛ рдХрд┐ рдКрдкрд░ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдкреНрд░рддреНрдпреЗрдХ рд╡реНрдпрдХреНрддрд┐рдЧрдд QML рдлрд╝рд╛рдЗрд▓ рдХреЗ рд▓рд┐рдП рдСрдмреНрдЬреЗрдХреНрдЯ рдЯреНрд░реА рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред рдпрджрд┐ рдЖрдк рдмрд╛рд░-рдмрд╛рд░ рдПрдХ QML рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП Button.qml, рдЬреЛ рд╕рд╛рд░реНрд╡рднреМрдорд┐рдХ рд░реВрдк рд╕реЗ рдЕрдиреНрдп QML рдлрд╝рд╛рдЗрд▓реЛрдВ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХреА рдЬрд╛рддреА рд╣реИ, рддреЛ QQmlCompiledData рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рдХреЗрд╡рд▓ рдПрдХ рдмрд╛рд░ рдЗрд╕рдХреЗ рд▓рд┐рдП рд╕рдВрдХрд▓рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдЬрд┐рд╕реЗ рдореЗрдореЛрд░реА рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ рдФрд░ C ++ рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рд╣рд░ рдмрд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрдм рдпрд╣ рдмрдЯрди рдлрд╝рд╛рдЗрд▓ рдХреЗ рд╕рдорд╛рд╡реЗрд╢ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рддрд╛ рд╣реИред рдЖрд╡реЗрджрди рдкрд╛рд░реНрд╕рд┐рдВрдЧ рдХреЗ рджреМрд░рд╛рди .qml рдЗрд╕рдХреЗ рдмрд╛рдж, рдирд┐рд░реНрдорд╛рдг рдЪрд░рдг рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИ, рдЬрд┐рд╕реЗ рд╣рдордиреЗ рдкреНрд░реЛрдлрд╛рдЗрд▓рд░ рд╡рд┐рдВрдбреЛ рдореЗрдВ рджреЗрдЦрд╛ рдерд╛ред
рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ: рдкреНрд░рддреНрдпреЗрдХ QML рдлрд╝рд╛рдЗрд▓ рдХреЛ рдкрд╛рд░реНрд╕ рдХрд░рдирд╛ рдФрд░ рдЙрд╕реЗ рдХреЗрд╡рд▓ рдПрдХ рдмрд╛рд░ рд╕рдВрдХрд▓рд┐рдд рдХрд░рдирд╛, рдЬрд┐рд╕рдХреЗ рдмрд╛рдж QQmlCompiledData рдСрдмреНрдЬреЗрдХреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдЬрд▓реНрджреА рд╕реЗ C ++ рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рд╕реГрдЬрди
рдореИрдВ QQmlCompiledData рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╡рд┐рд╡рд░рдг рдореЗрдВ рдирд╣реАрдВ рдЬрд╛рдКрдВрдЧрд╛, рд▓реЗрдХрд┐рди рдПрдХ рдмрд╛рдд рдЖрдкрдХрд╛ рдзреНрдпрд╛рди рдЖрдХрд░реНрд╖рд┐рдд рдХрд░ рд╕рдХрддреА рд╣реИ: QByteArray bytecode рд╕рджрд╕реНрдп рдЪрд░ред C ++ рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрджреЗрд╢ рдФрд░ рдЗрд╕рдХреЗ рдЧреБрдгреЛрдВ рдХреЛ рдорд╛рдиреЛрдВ рдХреЗ рдЙрдЪрд┐рдд рдЕрд╕рд╛рдЗрдирдореЗрдВрдЯ рдХреЛ рдмрд╛рдпрдЯреЗрдХреЛрдб рдХреЗ рд░реВрдк рдореЗрдВ рд╕рдВрдХрд▓рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЬрд┐рд╕реЗ рддрдм рдмрд╛рдпрдЯреЗрдХреЛрдб рджреБрднрд╛рд╖рд┐рдпрд╛ (
рдЕрдиреБрд╡рд╛рджрдХ рд╕реЗ: рдЗрдВрдЯрд░рдкреНрд░реЗрдЯрд░ рджреНрд╡рд╛рд░рд╛ рд╡реНрдпрд╛рдЦреНрдпрд╛ рдХреА рдЧрдИ, рд╡реНрдпрд╛рдЦреНрдпрд╛ рдХреА рдЧрдИ, рд▓реЗрдХрд┐рди рдирд╣реАрдВ ... =) рджреНрд╡рд╛рд░рд╛ рд╡реНрдпрд╛рдЦреНрдпрд╛ рдХреА рдЬрд╛рддреА рд╣реИ ред Bytecode рдореЗрдВ рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХрд╛ рдПрдХ рд╕реЗрдЯ рд╣реЛрддрд╛ рд╣реИ, рдФрд░ QQmlCompiledData рдореЗрдВ рдмрд╛рдХреА рд╕рд╛рдордЧреНрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреЗрд╡рд▓ рдирд┐рд░реНрджреЗрд╢ рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рддреЗ рд╕рдордп рд╕рд╣рд╛рдпрдХ рдбреЗрдЯрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдирд┐рд░реНрдорд╛рдг рдХреЗ рдЪрд░рдг рдореЗрдВ,
рдмрд╛рдпрдЯреЗрдХреЛрдб рдХреА рд╡реНрдпрд╛рдЦреНрдпрд╛
QQmlVME рд╡рд░реНрдЧ рджреНрд╡рд╛рд░рд╛ рдХреА
рдЬрд╛рддреА рд╣реИ ред QQmlVME :: рдЗрдВрдЯрд░рдкреНрд░рд┐рдЯрд░ рдХрд╛ рдХрд╛рд░реНрдп рдХреНрд░рдорд┐рдХ рд░реВрдк рд╕реЗ рдмрдбрд╝реЗ рд╕реНрд╡рд┐рдЪ рд╕реНрдЯреЗрдЯрдореЗрдВрдЯ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдмрд╛рдпрдЯреЗрдХреЛрдб рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХреЛ рдХреНрд░рдорд┐рдХ рд░реВрдк рд╕реЗ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рддрд╛ рд╣реИред рдзреНрд╡рдЬ QML_COMPILER_DUMP = 1 рдХреЗ рд╕рд╛рде рдЖрд╡реЗрджрди рд╢реБрд░реВ рдХрд░рддреЗ рд╕рдордп, рд╣рдо рдЕрд▓рдЧ-рдЕрд▓рдЧ рдмрд╛рдпреЛрдЯреЗрдХ рдирд┐рд░реНрджреЗрд╢ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ:
Index Operation Data1 Data2 Data3 Comments ------------------------------------------------------------------------------- 0 INIT 4 3 0 0 1 INIT_V8_BINDING 0 17 2 CREATECPP 0 3 STORE_META 4 SETID 0 "root" 5 BEGIN 16 6 STORE_INTEGER 45 1 7 STORE_COLOR 41 "ffb0c4de" 8 STORE_COMPILED_BINDING 10 2 0 9 STORE_DOUBLE 9 360 10 FETCH_QLIST 2 11 CREATE_SIMPLE 32 12 SETID 1 "text" 13 BEGIN 16 14 STORE_V8_BINDING 43 0 0 15 FETCH 19 16 STORE_COMPILED_BINDING 17 1 1 17 POP 18 STORE_OBJECT_QLIST 19 CREATE_SIMPLE 32 20 SETID 2 "mouseArea" 21 BEGIN 16 22 STORE_SIGNAL 42 2 23 FETCH 19 24 STORE_COMPILED_BINDING 16 0 1 25 POP 26 STORE_OBJECT_QLIST 27 POP_QLIST 28 SET_DEFAULT 29 DONE -------------------------------------------------------------------------------
- CREATE_SIMPLE рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдирд┐рд░реНрджреЗрд╢ рд╣реИ, рдпрд╣ рдкрдВрдЬреАрдХреГрдд рд╡рд╕реНрддреБрдУрдВ рдХреЗ рдбреЗрдЯрд╛рдмреЗрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ C ++ рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдирд╛рддрд╛ рд╣реИ: QQmlMMIKype ред
- STORE_INTEGER - рдХрд┐рд╕реА рд╕рдВрдкрддреНрддрд┐ рдХреЛ рдкреВрд░реНрдгрд╛рдВрдХ рдорд╛рди рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдирд┐рд░реНрджреЗрд╢ред
- STORE_SIGNAL рдХрд╛ рдЙрдкрдпреЛрдЧ рд╕рдВрдмрдВрдзрд┐рдд рд╕рд┐рдЧреНрдирд▓ рд╣реИрдВрдбрд▓рд░ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
- STORE_ * _BINDING рдХрд╛ рдЙрдкрдпреЛрдЧ рдкреНрд░реЙрдкрд░реНрдЯреА рдмрд╛рдЗрдВрдбрд┐рдВрдЧ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд╣рдо рдЗрд╕ рд╢реНрд░реГрдВрдЦрд▓рд╛ рдореЗрдВ рдЕрдЧрд▓реЗ рдкреЛрд╕реНрдЯ рдореЗрдВ рдмрд╛рдЗрдВрдбрд┐рдВрдЧ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдмрд╛рдд рдХрд░реЗрдВрдЧреЗред
- SETID, рдЬрд╛рд╣рд┐рд░ рд╣реИ, рдПрдХ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рдХреЛ рдПрдХ рдРрд╕реА рд╡рд╕реНрддреБ рдХреЗ рд▓рд┐рдП рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдПрдХ рдирд┐рдпрдорд┐рдд рд╕рдВрдкрддреНрддрд┐ рдирд╣реАрдВ рд╣реИред
VME рдореЗрдВ рд╡рд╕реНрддреБрдУрдВ рдХрд╛ рдПрдХ рдвреЗрд░ рд╣реИ, STORE_ * рдкреНрд░рдХрд╛рд░ рдХреЗ рд╕рднреА рдирд┐рд░реНрджреЗрд╢ рд╢реАрд░реНрд╖ рд╕реНрддрд░ рдкрд░ рд╕реНрдерд┐рдд рд╡рд╕реНрддреБ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВред FETCH рд╕реНрдЯреИрдХ рдХреЗ рд╢реАрд░реНрд╖ рдкрд░ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ QObject рд░рдЦрддрд╛ рд╣реИ, POP рд╢реАрд░реНрд╖ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рд╣рдЯрд╛ рджреЗрддрд╛ рд╣реИред рд╕рднреА рдирд┐рд░реНрджреЗрд╢ рд╕рдВрдЦреНрдпрд╛рддреНрдордХ рд╕реВрдЪрдХрд╛рдВрдХреЛрдВ рдХрд╛ рд╡реНрдпрд╛рдкрдХ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, STORE_COLOR рд╕реНрдЯреЗрдЯрдореЗрдВрдЯ рд╕рдВрдкрддреНрддрд┐ 41 рдХреЛ рд▓рд┐рдЦрддрд╛ рд╣реИ, рдЬреЛ рдореЗрдЯрд╛ рдкреНрд░реЙрдкрд░реНрдЯреА рдСрдмреНрдЬреЗрдХреНрдЯ.рдСрдбрд┐рдирд░реА рдХрд╛ рд╕реВрдЪрдХрд╛рдВрдХ рд╣реИ, рд▓рдХреНрд╖реНрдп QObjectред
рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ: QML рдлрд╝рд╛рдЗрд▓ рд╕рдВрдХрд▓рд┐рдд рдХрд┐рдП рдЬрд╛рдиреЗ рдХреЗ рдмрд╛рдж, рдЗрд╕рдХреЗ C ++ рдСрдмреНрдЬреЗрдХреНрдЯ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдмрдирд╛рдирд╛ рд╕рдВрдЪрд░рд┐рдд рд╕рдВрдХрд▓рд┐рдд рдбреЗрдЯрд╛ рд╕реЗ рдЙрддреНрдкрдиреНрди рдмрд╛рдпрдЯреЗрдХреЛрдб рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдорд╛рдорд▓рд╛ рд╣реИред
рдирд┐рд╖реНрдХрд░реНрд╖
рдЗрд╕ рдиреЛрдЯ рдХреЗ рдЕрдВрдд рдореЗрдВ, рд╣рдордиреЗ рдкреЗрд╢ рдХрд┐рдпрд╛ рдХрд┐ рдХреИрд╕реЗ QML рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдкрд╛рд░реНрд╕, рд╕рдВрд╕рд╛рдзрд┐рдд рдФрд░ рд╕рдВрдХрд▓рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдФрд░ рдлрд┐рд░ рдХреИрд╕реЗ VME рд╕рдВрдмрдВрдзрд┐рдд рд╡рд╕реНрддреБрдУрдВ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░рддрд╛ рд╣реИред рдореБрдЭреЗ рдЖрд╢рд╛ рд╣реИ рдХрд┐ рдЖрдкрдиреЗ QML рдЗрдВрдЬрди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рджрд┐рд▓рдЪрд╕реНрдк рд╕реАрдЦрд╛ рд╣реИред
рдЕрдЧрд▓реА рдкреЛрд╕реНрдЯ рддрдХ рджреЗрдЦрддреЗ рд░рд╣рд┐рдП, рдЬрд┐рд╕рдореЗрдВ рд╣рдо рджреЗрдЦреЗрдВрдЧреЗ рдХрд┐ QML рдореЗрдВ рдмрд╛рдЗрдВрдбрд┐рдВрдЧ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддреА рд╣реИред
рдЕрдиреБрд╡рд╛рджрдХ рд╕реЗ: рдПрдХ рд╣реА рдирд╕ рдореЗрдВ рдЬрд╛рд░реА рд░рдЦрдиреЗ рдпрд╛ рд░реЛрдХрдиреЗ рдХреЗ рд▓рд┐рдП? рдкрд┐рдЫрд▓реЗ рдЕрдиреБрд╡рд╛рджреЛрдВ рдкрд░ рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХреА рд╕рдмрд╕реЗ рдорд╛рдореВрд▓реА рд╕рдВрдЦреНрдпрд╛ рдХреЛ рджреЗрдЦрддреЗ рд╣реБрдП, рдпрд╣ рд╡рд┐рд╖рдп рд╣рдмрд░ рджрд░реНрд╢рдХреЛрдВ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рджрд┐рд▓рдЪрд╕реНрдк рдирд╣реАрдВ рд╣реИред
рдкреБрдирд╢реНрдЪ: рдФрд░ рд╣рд╛рдБ, рдореБрдЭреЗ рдкрддрд╛ рд╣реИ рдХрд┐ рдореЗрд░реЗ рд╕реЗ рдЕрдиреБрд╡рд╛рджрдХ рдРрд╕рд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВ рдЕрдкрдиреА рдкреВрд░реА рдХреЛрд╢рд┐рд╢ рдХрд░рддрд╛ рд╣реВрдВ =) рддреНрд░реБрдЯрд┐рдпрд╛рдВ рдФрд░ рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдВ - рдореИрдВ рдкреАрдПрдо рд╕реЗ рдкреВрдЫрддрд╛ рд╣реВрдВред