¿Cómo cambiar mediante programación el orden de los widgets en un diseño?

Tengo unQVBoxLayout que contiene algunos widgets personalizados, que consisten principalmente en una etiqueta y dos botones. Casi puedes hablar de algún tipo de mesa hecha a mano de alguna manera. Sé que hay widgets de tabla listos para usar, pero me gustaría usar el mío.

Lo que quiero lograr es esto: cuando hago clic en el botón "arriba" en uno de los widgets, debería moverse hacia arriba, o para decirlo de otra manera: debería cambiar su posición / índice actual dentro del padreQVBoxLayout de manera que se mueva un paso hacia arriba (o hacia abajo en consecuencia) con cada clic. ¿Es eso posible? ¿Cómo puedo lograr eso? Lo necesito como una forma fácil de usar para establecer el orden de los elementos dentro de ese diseño.

Comencé tratando de obtener el diseño principal desde mi widget:

QVBoxLayout* myLayout = qobject_cast<QVBoxLayout*>(this->parentWidget());

Eso parece funcionar, pero ¿cómo seguir desde aquí? ¡Gracias por tu ayuda!

Respuestas a la pregunta(2)

Su respuesta a la pregunta