В OpenGL этот обмен буфера обычно блокирует вызывающий поток до тех пор, пока не завершится рендеринг кадра в фоновый буфер, верно?
Это зависит от того, как он реализован.Что означает, что оно варьируется от оборудования к оборудованию и от драйвера к драйверу.
Если это так, не означает ли это, что блок во время замены буфера также блокирует весь пользовательский интерфейс?
Даже если он блокирует, он будет делать это только в течение 1/60 секунды.Возможно 1/30, если ваша игра замедляется.Если вы действительно медленный, 1/15.Самое большее одно нажатие клавиши или действие мыши, которое дает пользователь, все еще будет в очереди сообщений.
Проблема с блокировкой не связана с пользовательским интерфейсом.Это будет достаточно отзывчивым, чтобы пользователь не заметил.Но если у вас есть строгие временные ограничения (например, для игры), я бы рекомендовал вообще избегать paintGL
.Вы должны делать рендеринг, когда хотите, а не когда Qt говорит вам об этом.