QML (de l'anglès, QtMeta Language) és un llenguatge basat en JavaScript creat per dissenyar aplicacions enfocades a la interfície d'usuari.
És part de Qt Quick, el kit d'Interfície d'usuari creat per Digia al costat de l'entorn de treball Qt. El llenguatge QML s'usa principalment per a aplicacions mòbils, on l'entrada tàctil, les animacions fluides i una bona experiència d'usuari són crucials. Els documents QML descriuen un arbre d'elements. Els elements de QML que venen per defecte amb Qt són un sofisticat conjunt de blocs, elements gràfics (com a rectangles o imatges) i comportaments (com a animacions i transicions).[2] Aquests elements poden ser combinats per construir components més complexos, per completar aplicacions connectades a Internet.
Un exemple d'aquest tipus d'aplicacions es pot trobar en la plataforma per a dispositius tàctils de Canonical: Ubuntu Touch, on el llenguatge QML és un dels pilars del sistema operatiu. El sistema operatiu de Nokia MeeGo també disposava de suport per a aquestes aplicacions.
Els elements de QML poden tenir funcionalitats afegides usant codi Javascript, ja sigui en el mateix arxiu o aportant arxius .js. Així mateix, QML pot tenir característiques esteses en C++ usant l'entorn de treball de Qt.
Els objectes s'identifiquen sempre pel seu tipus, seguits d'unes claus. Els objectes comencen sempre amb majúscula. En aquest exemple hi ha tres objectes: Rectangle i els seus dos fills: Image i Text. Dins de les claus es poden especificar les propietats de l'objecte. Aquestes propietats es marquen com: propietat: valor. En aquest exemple es pot veure que Text (l'últim objecte) té una propietat anomenada text, el valor de la qual és una cadena: "Hola Món". Aquests dos elements estan separats per dos punts.