int main(int argc, char *argv[])
{
QApplication app(argc, argv);
QButtonGroup *bg1 = new QButtonGroup(&app);
QButtonGroup *bg2 = new QButtonGroup(&app);
QRadioButton *rb1 = new QRadioButton("R1");
QRadioButton *rb2 = new QRadioButton("R2");
QRadioButton *rb3 = new QRadioButton("R3");
QRadioButton *rb4 = new QRadioButton("R4");
bg1->addButton(rb1);
bg1->addButton(rb2);
bg2->addButton(rb3);
bg2->addButton(rb4);
QGroupBox *gb = new QGroupBox("Radio Buttons");
QGridLayout *layout = new QGridLayout();
layout->addWidget(rb1, 0, 0, 1, 1);
layout->addWidget(rb2, 1, 0, 1, 1);
layout->addWidget(rb3, 0, 1, 1, 1);
layout->addWidget(rb4, 1, 1, 1, 1);
gb->setLayout(layout);
QWidget *widget = new QWidget();
QVBoxLayout *mainLayout = new QVBoxLayout();
mainLayout->addWidget(gb);
widget->setLayout(mainLayout);
widget->layout()->setSizeConstraint(QLayout::SetFixedSize);
widget->show();
// gb->show();

return app.exec();
}

QRadioButton要放在QButtonGroup中, Java中的JRadioButton要放在ButtonGroup中.
把QRadioButtons放在一个QGroupBox里, Java中即设置边框为TitledBorder.这样做是为了看起来清楚.
QButtonGroup和ButtonGroup并不是容器, 只是一个逻辑上用来管理属于一组的RadioButtons只有一个能被选中.





































