Error in my code for solving gp programming

I write this code for solving GP programming but give error, I can’t solve that.

import sys
from PyQt6.QtWidgets import QApplication, QMainWindow, QWidget, QVBoxLayout, QHBoxLayout, QLabel, QLineEdit, QPushButton, QTextEdit, QComboBox
from pyomo.environ import *
from pyomo.opt import SolverFactory

class MainWindow(QMainWindow):
    def __init__(self):
        super().__init__()
        self.setWindowTitle("Goal Programming Solver")
        self.setGeometry(100, 100, 800, 600)

        # Create the central widget and layout
        centralWidget = QWidget(self)
        centralLayout = QVBoxLayout(centralWidget)

        # Create the input widgets
        inputWidget = QWidget()
        inputLayout = QVBoxLayout(inputWidget)

        # Function type (min or max)
        self.functionLabel = QLabel("Function Type:")
        self.functionComboBox = QComboBox()
        self.functionComboBox.addItem("Minimize")
        self.functionComboBox.addItem("Maximize")
        inputLayout.addWidget(self.functionLabel)
        inputLayout.addWidget(self.functionComboBox)

        # Goal values
        self.goalLabel = QLabel("Goal Values:")
        self.goalLineEdit = QLineEdit()
        inputLayout.addWidget(self.goalLabel)
        inputLayout.addWidget(self.goalLineEdit)

        # Decision variables
        self.decisionLabel = QLabel("Decision Variables:")
        self.decisionTextEdit = QTextEdit()
        inputLayout.addWidget(self.decisionLabel)
        inputLayout.addWidget(self.decisionTextEdit)

        # Constraints
        self.constraintLabel = QLabel("Constraints:")
        self.constraintTextEdit = QTextEdit()
        inputLayout.addWidget(self.constraintLabel)
        inputLayout.addWidget(self.constraintTextEdit)

        # Add the input widget to the central layout
        centralLayout.addWidget(inputWidget)

        # Create the solve button
        self.solveButton = QPushButton("Solve")
        self.solveButton.clicked.connect(self.solveProblem)
        centralLayout.addWidget(self.solveButton)

        # Create the output widget
        outputWidget = QWidget()
        outputLayout = QVBoxLayout(outputWidget)

        # Objective value
        self.objectiveLabel = QLabel("Objective Value:")
        self.objectiveLineEdit = QLineEdit()
        self.objectiveLineEdit.setReadOnly(True)
        outputLayout.addWidget(self.objectiveLabel)
        outputLayout.addWidget(self.objectiveLineEdit)

        # Solution values
        self.solutionLabel = QLabel("Solution Values:")
        self.solutionTextEdit = QTextEdit()
        self.solutionTextEdit.setReadOnly(True)
        outputLayout.addWidget(self.solutionLabel)
        outputLayout.addWidget(self.solutionTextEdit)

        # Add the output widget to the central layout
        centralLayout.addWidget(outputWidget)

        # Set the central widget
        self.setCentralWidget(centralWidget)

    def solveProblem(self):
        # Create the Pyomo model
        model = ConcreteModel()

        # Define the decision variables
        decisions = self.decisionTextEdit.toPlainText().split('\n')
        model.decisionVars = Var(decisions, domain=NonNegativeReals)

        # Define the constraints
        constraints = self.constraintTextEdit.toPlainText().split('\n')
        for constraint in constraints:
            if constraint != '':
                parts = constraint.split()
                if len(parts) != 3:
                    self.solutionTextEdit.setText("Error: Invalid constraint format")
                    return
                lhs, op, rhs = parts
                if op == '<=':
                    model.add_constraint(sum(model.decisionVars[lhs] for lhs in lhs.split('+')) <= float(rhs))
                elif op == '>=':
                    model.add_constraint(sum(model.decisionVars[lhs] for lhs in lhs.split('+')) >= float(rhs))
                elif op == '==':
                    model.add_constraint(sum(model.decisionVars[lhs] for lhs in lhs.split('+')) == float(rhs))

        # Define the objective function
        goalValues = self.goalLineEdit.text().split(',')
        if len(goalValues) == 1:
            model.objective = Objective(expr=sum((model.decisionVars[d] - float(goalValues[0]))**2 for d in decisions))
        else:
            goalValues = [float(g) for g in goalValues]
            if self.functionComboBox.currentIndex() == 0:
                model.objective = Objective(expr=sum((model.decisionVars[d] - goalValues[i])**2 for i, d in enumerate(decisions)))
            else:
                model.objective = Objective(expr=-sum((model.decisionVars[d] - goalValues[i])**2 for i, d in enumerate(decisions)))

        # Solve the model using CPLEX solver
        solver = SolverFactory('cplex', executable="C:/Program Files/IBM/ILOG/CPLEX_Studio221/cplex/bin/x64_win64")
        results = solver.solve(model)

        # Display the results
        self.objectiveLineEdit.setText(str(model.objective()))
        solutionText = ''
        for d in decisions:
            solutionText += d + ' = ' + str(model.decisionVars[d]()) + '\n'
        self.solutionTextEdit.setText(solutionText)

if __name__ == '__main__':
    app = QApplication(sys.argv)
    mainWindow = MainWindow()
    mainWindow.show()
    sys.exit(app.exec())

If a program produces an error, you should say what that error is, including any traceback in full.