QField Custom Forms with QML: Beyond the Native UI
2026-10-06 , Capalari

QField's built-in form interface covers most data collection needs — but what happens when your project demands something it simply can't deliver? This talk explores how to break free from QField's native form UI using the app-wide QML plugin mechanism: a powerful but largely undocumented capability that puts full control of the data entry experience in your hands.

Most practitioners who discover QML customization in QField start at the layer level. This talk makes the case for thinking bigger. By working at the app-wide plugin level — through main.qml and metadata.txt — you gain the ability to intercept and completely replace QField's native form drawer for any layer in your project, with a single, maintainable plugin.

We'll walk through the key concepts: how QFieldSync exports projects and names GeoPackages, how the app-wide plugin mechanism works and why it differs fundamentally from layer-level customization, and how to use iface.findItemByObjectName("overlayFeatureFormDrawer") to hook into QField's UI at runtime. Along the way, we'll cover the real challenges encountered — including QML/Qt integration quirks and debugging strategies — and the solutions that made it work in production.

Whether you're a QField power user who has hit the limits of the native form, or a developer curious about what's possible beneath QField's surface, this talk will give you a clear mental model and a practical starting point for building custom form experiences that your field teams will actually want to use.

Juan Gomez Luna is a GIS architect with four decades of experience building large-scale geospatial systems. As CEO of Geospatialis, he focuses on cloud-native GIS solutions based on QGIS and PostGIS. His work spans government, utilities, and international organizations, where he designs production-ready platforms for managing and analyzing spatial data at scale.