QListWidgetItem con botón de radio

Estoy trabajando en mi primera aplicación QT y tengo un problema con QListWidgetItems .

Tendré diferentes tipos de lista. para la lista de casillas de verificación utilizando:

 listElement[i]->setFlags(Qt::ItemIsEnabled); listElement[i]->setCheckState(Qt::Unchecked); 

Funciona exactamente como se desea.

Pero ahora quiero una lista de botones de radio. así que mi pregunta es en dos partes

  1. ¿Puedo usar la misma lógica que usé para checkBox para crear botones de radio?
  2. He utilizado:

     listElement[i]->setFlags(Qt::ItemIsEnabled); QRadioButton *radio1 = new QRadioButton(0); dlList->setItemWidget(listElement[i],radio1); 

esto mostrará los elementos en la lista con un botón de opción, el problema es que el texto está sobre el botón de opción:

Voy a intentar demostrar sin imagen.

Esto es una prueba
o
para los elementos 1

en cambio para la checkbox que tengo

  This is a test 

[]

  for element 1 

¿Cómo puedo hacer que el radioButton se alinee correctamente con el texto?

Nuevas preguntas:

Muchas gracias por las respuestas, mi texto está ahora junto a mi RadioButton.

Lo único es que no hay WordWrap, mi texto es más largo que el tamaño máximo de RadioButton. ¿Cómo puedo conseguirlo para wordwrap?

 rButton = new QRadioButton(); rButton->setFixedSize(LIST_TEXT_WIDTH_WO_ICON, LIST_TEXT_HEIGHT); rButton->setStyleSheet("border:none"); rButton->setFont(segoe18Font); rButton->setText("This is just a test for elementsss of type euh!!!"); rButton->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Preferred); dropListWidget->setItemWidget(listElement, rButton); 

Como habrás leído, hay dos enfoques para lograr lo que deseas.

  1. El más flexible: use un QListView , implemente un nuevo delegado y un modelo si es necesario.
  2. Continúe usando la interfaz clásica basada en elementos ( QListWidget ) y cambie los widgets del elemento mediante una QListWidgetItem o llamando a QListWidgetItem::setItemWidget .

Como la pregunta apunta hacia la segunda, intentaré proporcionar la solución basada en elementos más simple.

El siguiente fragmento de código genera el widget de lista en la imagen.

introduzca la descripción de la imagen aquí

 QListWidgetItem *it; it = new QListWidgetItem(ui->listWidget); ui->listWidget->setItemWidget(it, new QRadioButton(tr("Item 1"))); it = new QListWidgetItem(ui->listWidget); ui->listWidget->setItemWidget(it, new QRadioButton(tr("Item 2"))); // . // . // . it = new QListWidgetItem(ui->listWidget); ui->listWidget->setItemWidget(it, new QRadioButton(tr("Item N"))); 

donde ui->listWidget es un puntero al QListWidget que contiene los elementos.

Espero que esto ayude. Por lo que yo entiendo, eso es lo que necesitas.