Qt: 创建RadioButton

Qt: 创建RadioButton
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, 0011);
    layout
->addWidget(rb2, 1011);
    layout
->addWidget(rb3, 0111);
    layout
->addWidget(rb4, 1111);
    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只有一个能被选中.

你可能感兴趣的:(Qt: 创建RadioButton)