QML: differenze tra le versioni
(→prima versione) |
m (→aggiornamento link dopo la prima revisione) |
||
(5 versioni intermedie di uno stesso utente non sono mostrate) | |||
Riga 2: | Riga 2: | ||
'''Qt Modelling Language''' | '''Qt Modelling Language''' | ||
− | Sddm è un programma che fa uso delle ''' | + | 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> | |
− | 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: | ||
− | # Il thema autoComp: [https://github.com/cloc3/sddm/blob/autoCompletion/data/themes/autoComp/Main.qml| Main.qml]; | + | # Il thema autoComp: [https://github.com/cloc3/sddm/blob/autoCompletion/data/themes/autoComp-v1/Main.qml| Main.qml]; |
− | # 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-v1/2.0/UNameBox.qml| UNameBox.qml]. |
− | '''UNameBox.qml''', probabilmente, è un oggetto provvisorio, che tuttavia | + | '''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 | + | Questa singola 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-v1/src/greeter/UserModel.h UserModel.h] e [https://github.com/cloc3/sddm/blob/autoCompletion-v1/src/greeter/UserModel.cpp UserModel.cpp]. |
− | Con questa semplicissima ''sintassi'', il programma QML consente di integrare nuove funzionalità non ancora previste dal programma | + | 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: | ||
− | + | 31 property int auC: userModel.initAutoCompletion | |
− | userModel.head=event.text | + | 103 userModel.head=event.text |
− | userModel.tail="" | + | 104 userModel.tail="" |
− | head = userModel.head | + | 105 head = userModel.head |
− | tail = userModel.tail | + | 106 tail = userModel.tail |
− | + | La seconda e la terza sono chiamate ''in scrittura'': il file QML passa un valore al programma in linguaggio C++.<br> | |
− | + | La prima, quarta e la quinta sono chiamate ''in lettura'': il programma C++ restituisce un valore che viene reso disponibile al programma QML. | |
+ | |||
+ | 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 l'acquisizione dell'evento di tastiera da parte del metodo ''setHead(Qstring inputString)'', che lo elabora privatamente. | ||
+ | |||
+ | [[Una_patch_ad_SDDM| torna all'indice]] |
Versione attuale delle 00:04, 16 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:
- Il thema autoComp: Main.qml;
- 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 singola 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++.
La prima, quarta e la quinta sono chiamate in lettura: il programma C++ restituisce un valore che viene reso disponibile al 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 l'acquisizione dell'evento di tastiera da parte del metodo setHead(Qstring inputString), che lo elabora privatamente.