QML: differenze tra le versioni

Da PNLUG.
m (numeri di riga)
(refusi)
Riga 2: Riga 2:
 
'''Qt Modelling Language'''
 
'''Qt Modelling Language'''
  
Sddm è un programma che fa uso delle '''QT''': una libreria di risorse grafiche che facilita la vita ai programmatori della domenica, come noi.
+
Sddm è un programma che fa uso delle '''Qt''': una libreria di risorse grafiche che facilita la vita ai programmatori della domenica, come noi.
  
'''QML'' è un linguaggio di programmazione interpretato gestito dalle '''Qt'''.<br>
+
''QML'' è un linguaggio di programmazione interpretato gestito dalle '''Qt'''.<br>
Quando il greeter di sddm si avvia, esegue uno script qml chiamato '''Main.qml''', contenuto nella cartella indicata dall'opzione --theme.
+
Quando il greeter di sddm si avvia, esegue uno script qml chiamato '''Main.qml''', contenuto nella cartella indicata dall'opzione ''--theme''.
  
 
Nella prima versione del nostra patch a sddm sono contenuti due file qml nuovi:
 
Nella prima versione del nostra patch a sddm sono contenuti due file qml nuovi:
Riga 11: Riga 11:
 
# La componente [https://github.com/cloc3/sddm/blob/autoCompletion/components/2.0/UNameBox.qml| UNameBox.qml].
 
# La componente [https://github.com/cloc3/sddm/blob/autoCompletion/components/2.0/UNameBox.qml| UNameBox.qml].
  
'''UNameBox.qml''', probabilmente, è un oggetto provvisorio, che tuttavia gestisce, in questo momento, la funzione di autocompletamento.
+
'''UNameBox.qml''', probabilmente, è un oggetto provvisorio, che tuttavia gestisce, attualmente, la funzione di autocompletamento.
  
 
Leggiamo la riga 31 del programma UNameBox.qml:
 
Leggiamo la riga 31 del programma UNameBox.qml:
 
   property int auC: userModel.initAutoCompletion;
 
   property int auC: userModel.initAutoCompletion;
  
Questa semplicissima istruzione definisce una variabile intera chiamata '''auC'' e attribuisce ad essa un valore, determinato dalla proprietà initAutoCompletion definita all'interno dei file UserModel.h e UserModel.cpp.
+
Questa semplicissima istruzione definisce una variabile intera chiamata '''auC''' e attribuisce ad essa un valore, determinato dalla proprietà ''initAutoCompletion'' definita all'interno dei file [https://github.com/cloc3/sddm/blob/autoCompletion/src/greeter/UserModel.h UserModel.h] e [https://github.com/cloc3/sddm/blob/autoCompletion/src/greeter/UserModel.cpp UserModel.cpp].
  
Con questa semplicissima ''sintassi'', il programma QML consente di integrare nuove funzionalità non ancora previste dal programma orginale.
+
Con questa semplicissima ''sintassi'', il programma QML consente di integrare nuove funzionalità non ancora previste dal programma originale.
  
 
Nel file UNameBox.qml sono contenuti, in tutto, '''5''' richiami al modulo UserModel:
 
Nel file UNameBox.qml sono contenuti, in tutto, '''5''' richiami al modulo UserModel:
Riga 27: Riga 27:
 
   106  tail = userModel.tail
 
   106  tail = userModel.tail
  
il secondo e il terzo sono chiamate in lettura: il file QML passa un valore al programma in linguaggio C++.<br>
+
La seconda e la terza sono chiamate in scrittura: il file QML passa un valore al programma in linguaggio C++, che lo memorizza in una variabile privata, per un farne uso successivamente.<br>
il terzo e il quarto sono chiamate in scrittura: il programma C++ restituisce un valore che può essere usato dal programma QML.
+
La prima, quarta e la quinta sono chiamate in lettura: il programma C++ restituisce un valore che può essere usato dal programma QML.<br>
 +
Osserviamo per chiarezza che i termini ''lettura'' e ''scrittura'' vanno intesi, in questo contesto, dal punto di vista del programma qml.<br>
 +
Per esempio, la riga 103 è in scrittura perché il  programma qml ordina la trascrizione in registro privato del valore trasmesso al metodo ''setHead(Qstring inputString)''.
  
 
[[Una_patch_ad_SDDM| torna all'indice]]
 
[[Una_patch_ad_SDDM| torna all'indice]]

Versione delle 11:35, 11 ago 2016

Cosa son le QML

Qt Modelling Language

Sddm è un programma che fa uso delle Qt: una libreria di risorse grafiche che facilita la vita ai programmatori della domenica, come noi.

QML è un linguaggio di programmazione interpretato gestito dalle Qt.
Quando il greeter di sddm si avvia, esegue uno script qml chiamato Main.qml, contenuto nella cartella indicata dall'opzione --theme.

Nella prima versione del nostra patch a sddm sono contenuti due file qml nuovi:

  1. Il thema autoComp: Main.qml;
  2. La componente UNameBox.qml.

UNameBox.qml, probabilmente, è un oggetto provvisorio, che tuttavia gestisce, attualmente, la funzione di autocompletamento.

Leggiamo la riga 31 del programma UNameBox.qml:

 property int auC: userModel.initAutoCompletion;

Questa semplicissima istruzione definisce una variabile intera chiamata auC e attribuisce ad essa un valore, determinato dalla proprietà initAutoCompletion definita all'interno dei file UserModel.h e UserModel.cpp.

Con questa semplicissima sintassi, il programma QML consente di integrare nuove funzionalità non ancora previste dal programma originale.

Nel file UNameBox.qml sono contenuti, in tutto, 5 richiami al modulo UserModel:

  31  property int auC: userModel.initAutoCompletion
 103  userModel.head=event.text
 104  userModel.tail=""
 105  head = userModel.head
 106  tail = userModel.tail

La seconda e la terza sono chiamate in scrittura: il file QML passa un valore al programma in linguaggio C++, che lo memorizza in una variabile privata, per un farne uso successivamente.
La prima, quarta e la quinta sono chiamate in lettura: il programma C++ restituisce un valore che può essere usato dal programma QML.
Osserviamo per chiarezza che i termini lettura e scrittura vanno intesi, in questo contesto, dal punto di vista del programma qml.
Per esempio, la riga 103 è in scrittura perché il programma qml ordina la trascrizione in registro privato del valore trasmesso al metodo setHead(Qstring inputString).

torna all'indice