Week 14 – Interface and Application Programming

Development of a desktop monitoring and control interface for the FAB ENCLOSER project using Qt Designer and Python.

Project Overview Qt Designer

During this week I developed a graphical user interface (GUI) for my final project, the FAB ENCLOSER. The objective was to create an intuitive control panel capable of displaying environmental information, monitoring the internal camera, and providing manual control over the enclosure subsystems.

The interface was designed using Qt Designer, a visual development environment that allows graphical applications to be created through drag-and-drop components without manually writing the entire interface code.

After designing the interface, the generated .ui file was converted into a Python file using the PyQt6 tool:

pyuic6 -x filename.ui -o output.py

This conversion generated the Python structure required to integrate the graphical interface with the rest of the application logic.

Interface Objective Final Project

The purpose of the interface is to provide a centralized dashboard for monitoring and controlling the enclosure remotely.

Since the FAB ENCLOSER integrates sensors, actuators, lighting, heating systems, ventilation and a camera, the user requires a simple way to visualize all information without directly interacting with the hardware.

The interface was therefore designed around four main functions:

  • Environmental monitoring
  • Remote control of actuators
  • Live camera visualization
  • System status and safety management
Qt Designer Workflow Software Development

Qt Designer was used as the primary development tool for creating the graphical interface. The software allows interfaces to be built visually by placing widgets inside a window and configuring their properties.

The workflow followed was:

  1. Create a new Main Window project.
  2. Define the general layout structure.
  3. Add containers and frames.
  4. Insert buttons, labels and display panels.
  5. Customize colors, fonts and stylesheets.
  6. Save the interface as a .ui file.
  7. Convert the interface to Python using pyuic6.

One of the main advantages of Qt Designer is that modifications can be performed visually without modifying Python code directly, significantly accelerating interface development.

How the Interface Was Built Step by Step

1. Main Window

The first step was creating the main application window. This window serves as the container for all widgets and system controls.

2. Left Navigation Menu

A vertical navigation panel was added on the left side of the application. This section contains the main navigation buttons:

  • Dashboard
  • Camera
  • Control
  • Alerts

These buttons are intended to allow navigation between future application pages.

3. Environmental Monitoring Cards

Two information cards were placed at the top of the dashboard:

  • Temperature display
  • Humidity display

Labels were configured to show real-time sensor readings coming from the enclosure electronics.

4. Manual Control Buttons

Three large action buttons were created:

  • Heater ON/OFF
  • Ventilation
  • Lights

These buttons provide direct control over the main systems inside the enclosure.

5. Camera Area

A large central frame was created to display the live video feed coming from the Raspberry Pi camera.

This section occupies the largest area of the dashboard because visual monitoring is one of the most important functions of the project.

6. Status Panel

A dedicated system status section was added to provide visual feedback about the current operating state.

The status panel contains:

  • Current operating condition
  • Pause printing button
  • Emergency stop button

These controls are critical for safety and remote operation.

Interface Components Widgets Used
Qt Widget Purpose
QMainWindow Main application window
QFrame Section containers and panels
QLabel Temperature, humidity and status display
QPushButton Control buttons and navigation menu
Layouts Automatic organization of components
Stylesheets Custom visual appearance
Final Interface FAB ENCLOSER Dashboard
FAB ENCLOSER Interface
Final graphical user interface developed using Qt Designer.

The final interface follows a modern dashboard design with a dark theme, high contrast colors, and clearly separated control sections. This improves readability and allows critical information such as temperature and system status to be identified immediately.

UI to Python Conversion PyQt6

Once the visual design was completed, the Qt Designer file was saved as a .ui file.

To use the interface within Python, the following command was executed:

pyuic6 -x filename.ui -o output.py

This command automatically generates a Python file containing all widgets, layouts and interface definitions created in Qt Designer.

After conversion, additional functionality can be programmed using Python to connect buttons, sensors, cameras and communication systems.

Reflection

This week introduced me to graphical application development and showed how software interfaces can be integrated with digital fabrication projects. Creating the FAB ENCLOSER dashboard demonstrated how environmental monitoring, machine control and computer vision can be combined into a single application.

I learned how to use Qt Designer to rapidly create professional user interfaces, how to organize widgets using layouts, and how to convert visual designs into executable Python applications using PyQt6.

This interface will become the primary control center for my final project, allowing users to interact with the enclosure remotely through a simple and intuitive graphical environment.