How do I create a dynamic list of radios from a database ?

From qtnode

Jump to: navigation, search

Here's some cut and paste from a project.

//** Status Box
QGroupBox *statusGroupBox = new QGroupBox("Status");
QVBoxLayout *vboxStatusCol = new QVBoxLayout; // vertical col with spacer at end
QVBoxLayout *vboxStatus = new QVBoxLayout;
QSqlQuery query("select status_id, status, date_required from statuses order by sort_order asc");
signalMapper = new QSignalMapper(this);
QRadioButton *statusRadio;
 while ( query.next() ) {
   statusRadio =  new QRadioButton( query.value(1).toString() );
   connect(statusRadio, SIGNAL(clicked()), signalMapper, SLOT(map()));
   signalMapper->setMapping(statusRadio,  query.value(0).toInt() );
   statusRadio->setChecked( user.status_id == query.value(0).toInt() ); // select item
   vboxStatus->addWidget( statusRadio );
   status_date_required[query.value(0).toInt()] = query.value(2).toBool(); // assoc array of enalbed
}
connect(signalMapper, SIGNAL(mapped(const int &)), this, SLOT(statusClicked(const int)));
statusGroupBox->setLayout(vboxStatus);
vboxStatusCol->addWidget(statusGroupBox);
vboxStatusCol->addItem(new QSpacerItem(1, 1, QSizePolicy::Minimum, QSizePolicy::Expanding) );
mainHBox->addLayout(vboxStatusCol);
Personal tools