1/4 Mile Calculator using PyQt5 in Python

A 1/4 mile calculator helps estimate how long it takes for a vehicle to cover a quarter-mile (about 400 meters) based on its power and weight. This is commonly used in drag racing to measure a car's acceleration and performance.

What Is a 1/4 Mile Calculator?

To make this estimation, we use the following basic formula ?

ET = (weight / horsepower) ** (1/3) * 5.825

In this formula:

  • ET stands for Estimated Time in seconds
  • Weight is the car's weight in pounds
  • Horsepower is the engine power in HP

Setting Up PyQt5

PyQt5 is a Python library that helps you create desktop applications with graphical interfaces. It provides components like buttons, labels, textboxes, and more.

To install PyQt5 in your system, use the following command ?

pip install PyQt5

Building the Calculator Interface

To build a 1/4-mile calculator using PyQt5 in Python, we will ?

  • Design a simple window with two input fields: one for weight and the other for horsepower
  • Add a button that performs the calculation
  • Display the estimated 1/4-mile time using the racing formula

Import Required Modules

We start by importing the required PyQt5 modules and creating a basic application window ?

import sys
from PyQt5.QtWidgets import QApplication, QWidget, QLabel, QLineEdit, QPushButton, QVBoxLayout

These imports include ?

  • QApplication to start the app
  • QWidget for the main window
  • QLabel for labels
  • QLineEdit for user input
  • QPushButton for the action button
  • QVBoxLayout for arranging widgets vertically

Define the Calculator Class

We define a class QuarterMileCalculator that sets up the interface and connects the logic to the button ?

class QuarterMileCalculator(QWidget):
    def __init__(self):
        super().__init__()

        # Set window title
        self.setWindowTitle("1/4 Mile Time Calculator")

        # Create UI elements
        self.weight_label = QLabel("Enter Car Weight (lbs):")
        self.weight_input = QLineEdit()

        self.hp_label = QLabel("Enter Horsepower (HP):")
        self.hp_input = QLineEdit()

        self.result_label = QLabel("")
        self.calculate_button = QPushButton("Calculate Time")

        # Connect button to function
        self.calculate_button.clicked.connect(self.calculate_time)

        # Layout
        layout = QVBoxLayout()
        layout.addWidget(self.weight_label)
        layout.addWidget(self.weight_input)
        layout.addWidget(self.hp_label)
        layout.addWidget(self.hp_input)
        layout.addWidget(self.calculate_button)
        layout.addWidget(self.result_label)

        self.setLayout(layout)

Implement the Calculation Logic

We use the formula from earlier to calculate the estimated time. Define a method to calculate the 1/4-mile time ?

def calculate_time(self):
    try:
        weight = float(self.weight_input.text())
        horsepower = float(self.hp_input.text())

        if weight <= 0 or horsepower <= 0:
            self.result_label.setText("Both values must be greater than 0.")
            return

        et = (weight / horsepower) ** (1/3) * 5.825
        self.result_label.setText(f"Estimated 1/4 mile time: {et:.2f} seconds")

    except ValueError:
        self.result_label.setText("Please enter valid numeric values.")

This method does the following ?

  • Reads input values from the text boxes
  • Applies the formula only if both values are valid and positive
  • Displays the result rounded to 2 decimal places
  • Handles invalid input with error messages

Complete Example

Here is the complete code to create a 1/4 mile calculator using PyQt5 in Python ?

import sys
from PyQt5.QtWidgets import QApplication, QWidget, QLabel, QLineEdit, QPushButton, QVBoxLayout

class QuarterMileCalculator(QWidget):
    def __init__(self):
        super().__init__()

        # Set the title of the window
        self.setWindowTitle("1/4 Mile Time Calculator")

        # Create label and input for car weight
        self.weight_label = QLabel("Enter Car Weight (lbs):")
        self.weight_input = QLineEdit()

        # Create label and input for horsepower
        self.hp_label = QLabel("Enter Horsepower (HP):")
        self.hp_input = QLineEdit()

        # Label to display result
        self.result_label = QLabel("")

        # Button to trigger calculation
        self.calculate_button = QPushButton("Calculate Time")

        # Connect button click to the calculation method
        self.calculate_button.clicked.connect(self.calculate_time)

        # Arrange all widgets using vertical layout
        layout = QVBoxLayout()
        layout.addWidget(self.weight_label)
        layout.addWidget(self.weight_input)
        layout.addWidget(self.hp_label)
        layout.addWidget(self.hp_input)
        layout.addWidget(self.calculate_button)
        layout.addWidget(self.result_label)

        # Set the layout to the main window
        self.setLayout(layout)

    # Method to calculate 1/4 mile time
    def calculate_time(self):
        try:
            # Get input values and convert to float
            weight = float(self.weight_input.text())
            horsepower = float(self.hp_input.text())

            # Check for valid positive inputs
            if weight <= 0 or horsepower <= 0:
                self.result_label.setText("Both values must be greater than 0.")
                return

            # Apply the estimation formula
            et = (weight / horsepower) ** (1/3) * 5.825

            # Display the result
            self.result_label.setText(f"Estimated 1/4 mile time: {et:.2f} seconds")

        except ValueError:
            # Handle invalid (non-numeric) input
            self.result_label.setText("Please enter valid numeric values.")

# Run the application
if __name__ == "__main__":
    app = QApplication(sys.argv)  # Create application instance
    window = QuarterMileCalculator()  # Create calculator window
    window.show()  # Show the window
    sys.exit(app.exec_())  # Start the event loop

Testing the Application

When you run the app, you can test it with sample values ?

Enter 3500 in the "Enter Car Weight (lbs)" field.
Enter 400 in the "Enter Horsepower (HP)" field.
Click "Calculate Time".
Estimated 1/4 mile time: 13.23 seconds

Conclusion

In this article, we built a simple 1/4 mile time calculator using PyQt5 in Python. The application takes weight and horsepower as inputs, applies a racing formula, and displays the estimated time to cover a quarter-mile distance with proper error handling for invalid inputs.

Updated on: 2026-03-27T11:42:28+05:30

266 Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements