由于用到了radiobutton,需要用groupbox进行分组,大概代码如下:
radio1 = new QRadioButton;
radio1->setText("radio1");
radio2 = new QRadioButton;
radio2->setText("radio2");
radio3 = new QRadioButton;
radio3->setText("radio3");
radio4 = new QRadioButton;
radio4->setText("radio4");
but1 = new QPushButton;
but2 = new QPushButton;
check1 = new QCheckBox;
check2 = new QCheckBox;
com1 = new QComboBox;
com2 = new QComboBox;
slid = new QSlider;
check3 = new QCheckBox;
check4 = new QCheckBox;
cout<<"main"<<endl;
but1->installEventFilter(this);
radio1->setStyleSheet("QRadioButton::indicator{spacing:0;}");
QGroupBox *box1 = new QGroupBox;
box1->setFlat(true);
QGridLayout *radiogrid1 = new QGridLayout;
radiogrid1->addWidget(radio1,0,0);
radiogrid1->addWidget(radio2,0,1);
box1->setLayout(radiogrid1);
box1->setStyleSheet("QGroupBox{border:none;padding:0px;spacing:0;margin:0px;}");
QGroupBox *box2 = new QGroupBox;
box2->setFlat(true);
QGridLayout *radiogrid2 = new QGridLayout;
radiogrid2->addWidget(radio3,0,0);
radiogrid2->addWidget(radio4,0,1);
box2->setLayout(radiogrid2);
QHBoxLayout *hbox0 = new QHBoxLayout;
hbox0->addWidget(box1);
hbox0->addWidget(box2);
QHBoxLayout *hbox1 = new QHBoxLayout;
hbox1->addWidget(but1);
hbox1->addWidget(but2);
QHBoxLayout *hbox2 = new QHBoxLayout;
hbox2->addWidget(check1);
hbox2->addWidget(check2);
QHBoxLayout *hbox3 = new QHBoxLayout;
hbox3->addWidget(com1);
hbox3->addWidget(com2);
QHBoxLayout *hbox4 = new QHBoxLayout;
hbox4->addWidget(slid);
QHBoxLayout *hbox5 = new QHBoxLayout;
hbox5->addWidget(check3);
hbox5->addWidget(check4);
QVBoxLayout *vbox = new QVBoxLayout;
vbox->addLayout(hbox1);
vbox->addLayout(hbox0);
vbox->addLayout(hbox2);
vbox->addLayout(hbox3);
vbox->addLayout(hbox4);
vbox->addLayout(hbox5);
setLayout(vbox);
setFixedSize(400,155);
结果感觉groupbox边框貌似有很大一部分利用不上,但groupbox的border、padding和margin都设置为0了,有没有什么办法把边框占得这部分再调小一点