QML (del inglés, Qt Meta Language) es un lenguaje basado en JavaScript creado para diseñar aplicaciones enfocadas a la interfaz de usuario. Es parte de Qt Quick, el kit de Interfaz de usuario creado por Digia junto al framework Qt. El lenguaje QML se usa principalmente para aplicaciones móviles, donde la entrada táctil, las animaciones fluidas y una buena experiencia de usuario son cruciales. Los documentos QML describen un árbol de elementos. Los elementos de QML que vienen por defecto con Qt son un sofisticado conjunto de bloques, elementos gráficos (como rectángulos o imágenes) y comportamientos (como animaciones y transiciones). Estos elementos pueden ser combinados para construir componentes más complejos, para completar aplicaciones conectadas a Internet.
Un ejemplo de este tipo de aplicaciones se puede encontrar en la plataforma para dispositivos táctiles de Canonical: Ubuntu Phone, donde el lenguaje QML es uno de los pilares del sistema operativo. El sistema operativo de Nokia MeeGo también disponía de soporte para estas aplicaciones.
Los elementos de QML pueden tener funcionalidades añadidas usando código JavaScript, ya sea en el mismo archivo o aportando archivos .js. Asimismo, QML puede tener características extendidas en C++ usando el framework de Qt.
Los objetos se identifican siempre por su tipo, seguidos de unas llaves. Los objetos empiezan siempre con mayúscula. En este ejemplo hay tres objetos: Rectangle y sus dos hijos: Image y Text. Dentro de las llaves se pueden especificar las propiedades del objeto. Estas propiedades se marcan como: propiedad: valor. En este ejemplo se puede ver que Text (el último objeto) tiene una propiedad llamada text, cuyo valor es una cadena: "Hola Mundo". Estos dos elementos están separados por dos puntos.