Вот чем руководствовались разработчики Qt когда сделали конструктор QMatrix4x4(qreal*) с вектором, в котором матрица расположена по строкам, в то время как в OpenGL она располагается по столбцам. Ведь и в Qt5 это осталось
Руководствовались именно совместимостью с OpenGL. Где матрицы
хранятся в памяти в row-major (смещение в последней строке), но
используются как column-major (смещение в последнем столбце). Др словами если Вы сделаете QMatrix4x4::setRow, то
в памяти перезапишется столбец, но рез-т будет "по документации" как если бы изменили строку.
Да, извращенцы, ну что поделаешь...