En esta página

Qt Quick Controls - Lista de contactos

Una aplicación QML que utiliza Qt Quick Controls y una clase C++ que implementa una sencilla lista de contactos.

El ejemplo de la lista de contactos muestra cómo integrar un backend C++ de forma compatible con Qt Quick Designer. Para las partes declarativas de la UI, se utilizan archivos .ui.qml que pueden ser editados visualmente en el Qt Quick Designer.

Solicitud de lista de contactos con nombres y direcciones

Backend C

La aplicación de la lista de contactos permite al usuario añadir, editar y eliminar contactos. La implementación real se realiza en C++ y se expone como QAbstractListModel.

La clase ContactModel C++ se registra bajo un espacio de nombres y posteriormente es importada e instanciada por MainForm.ui.qml. Para obtener más información sobre el registro de clases C++ como tipos QML, consulte Definición de tipos QML desde C++.

#include <QtQml/qqml.h>
...
qmlRegisterType<ContactModel>("Backend", 1, 0, "ContactModel");
...

Soporte para diseñadores

En el subdirectorio designer, creamos un plugin que sustituye al ContactModel en Qt Quick Designer. Para que esto funcione añadimos la siguiente línea a contactlist.pro.

QML_DESIGNER_IMPORT_PATH = $$PWD/designer

Debido a que Qt Quick Designer no puede instanciar la clase ContactModel C++, definimos un mockup usando un ListModel. Esto asegura que el ListView que usa el modelo muestre algo en Qt Quick Designer.

Ejecutar el ejemplo

Para ejecutar el ejemplo desde Qt Creator, abra el modo Welcome y seleccione el ejemplo de Examples. Para más información, ver Qt Creator: Tutorial: Construir y ejecutar.

Proyecto de ejemplo @ code.qt.io

© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.