Thank you for all the help guys! I just needed to search about "Adding new widgets dynamically", but I didn't know it was called like this. This is the final result:
def addRow(self, r):
self.newLayoutRow = QtWidgets.QHBoxLayout()
self.newLayoutRow.setObjectName("newLayoutRow_" + str(r))
self.newTimeEdit = QtWidgets.QTimeEdit(self.sorting0)
self.newTimeEdit.setObjectName("newTimeEdit_" + str(r))
self.mainGrid.addWidget(self.newTimeEdit, r, 0, 1, 1)
self.QComboBox1 = QtWidgets.QComboBox(self.sorting0)
self.QComboBox1.setObjectName("QComboBox1_" + str(r))
self.newLayoutRow.addWidget(self.QComboBox1)
self.QComboBox2 = QtWidgets.QComboBox(self.sorting0)
self.QComboBox2.setObjectName("QComboBox2_" + str(r))
self.newLayoutRow.addWidget(self.QComboBox2)
self.QSpinBox = QtWidgets.QSpinBox(self.sorting0)
self.QSpinBox.setObjectName("QSpinBox_" + str(r))
self.newLayoutRow.addWidget(self.QSpinBox)
self.mainGrid.addLayout(self.newLayoutRow, r, 1, 1, 1)
Now just need to add some for loops and it's good to go