對于開發用戶界面,最重要的一方面是保持數據與可視化的分離。例如,一個電話薄可以使用一個垂直文本鏈表排列或者使用一個網格聯系人圖片排列。在這兩個案例中,數據都是相同的,但是可視化效果卻是不同的。這種方法通常被稱作model-view(模型-視圖)模式。在這種模式中,數據通常被稱作model(模型),可視化處理稱作view(視圖)。
在QML中,model(模型)與view(視圖)都通過delegate(代理)連接起來。功能劃分如下,model(模型)提供數據。對于每個數據項,可能有多個值。在上面的電話薄例子中,每個電話薄條目對應一個名字,一個圖片和一個號碼。顯示在view(視圖)中的每項數據,都是通過delegate(代理)來實現可視化。view(視圖)的任務是排列這些delegate(代理),每個delegate(代理)將model item(模型項)的值顯示給用戶。