Qt Blog

Qt Interface Framework with a new Control Panel

Written by Bruno Vunderl | May 15, 2026

You've just implemented a new feature on the project you're working on. Now, it's time to test how does it work when the data is connected. In case you're working on a device which needs to listen to external devices or sensors, this might not be a trivial problem to solve.

With the release of the Interface Framework Control Panel introduced in Qt 6.11, we are fundamentally changing how developers and testers interact with simulated data. Whether you are building a digital instrument cluster or a UI for an IOT device, the Control Panel provides a powerful, visual, and highly extensible way to test your applications without ever leaving your development environment.

Automatically generated UI and simulation backend

At its core, the Interface Framework Control Panel is a dynamic UI that automatically maps to your defined interfaces. In the past, testing a specific state often meant writing "mock" backends in C++ or manually triggering signals via a terminal.

Now, simulation is as easy as moving a slider or clicking a button. The Control Panel detects the properties, signals, and methods of your Qt Interface Framework (QtIF) modules and generates a control surface on the fly.

This allows developers to:

  • Modify properties instantly: Watch your UI update in real-time as you toggle values.
  • Trigger Methods: Simulate complex events like "Engine Overheat" or "Low Fuel" with a single click.
  • Monitor State: Keep a live log of data flowing between the simulated vehicle bus and your application logic.

 



Simulating Android Automotive Vehicle Properties

One of the most impactful use cases for the Control Panel is its deep integration with Android Automotive Vehicle Properties. The Android Automotive backend in Qt Interface Framework acts as a bridge to the Vehicle Hardware Abstraction Layer (VHAL). While Android provides a standard "Car Sensor Simulator," it often feels like a separate, detached experience.

The Interface Framework Control Panel elevates this by providing a unified interface for all VHAL properties. Want to see how your UI handles a rapid change in the PERF_VEHICLE_SPEED? Or how the seat heating animation looks when HVAC_SIDE_MIRROR_HEAT is toggled? The Control Panel makes these properties accessible through a clean, organized dashboard.

Why It Surpasses the Standard Android Emulator Tools

While the default Android Automotive emulator comes with a "Car Sensor Simulator," the Interface Framework Control Panel offers several distinct advantages for the modern developer:

  • Support for Custom Properties: The standard AAOS simulator often struggles with vendor-specific or non-standard VHAL properties. The Interface Framework Control Panel handles these seamlessly, allowing OEMs to test proprietary vehicle features with the same ease as standard ones.
  • Unified Workflow: You no longer need to jump between the Android Studio emulator controls and your Qt development environment. The Control Panel integrates directly into the Qt ecosystem, keeping your focus where the code is.
  • Context-Aware UI: The standard Android tool is often a "one-size-fits-all" window. The Control Panel is built specifically to reflect the interfaces your app is actually using. It doesn’t clutter your workspace with irrelevant sensors; it focuses on the data that matters to your project.
  • Extensibility via QML: Because the Control Panel is built on Qt, it is highly customizable. Developers can create custom "Simulation Plugins" to model complex behaviors like a battery drain algorithm rather than just manually moving a slider.

Getting started with the Interface Framework

If you are new to the Qt Interface Framework, the best starting points are:

For the new control panel instucrions, check out the Simulation Control Panel documentation.

We would love to hear how you are using the Qt Interface Framework — whether in automotive, IoT, industrial automation, or something entirely different. Feel free to open a bug report at bugreports.qt.io or reach out on the Qt Forum.