如何完全取消groupbox边框

yangshen1990 2016-06-16 12:01:50
由于用到了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了,有没有什么办法把边框占得这部分再调小一点
...全文
892 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
yangshen1990 2016-06-16
  • 打赏
  • 举报
回复
widget能给radiobutton分组吗,应该只有groupbox可以分组吧
yangshen1990 2016-06-16
  • 打赏
  • 举报
回复
引用 5 楼 u013466477 的回复:
[quote=引用 4 楼 yangshen1990 的回复:] 好像没什么区别,是不是这个边框宽度已经是widget的最小值了,不可能完全消除?
回复先引用一下。 不是的,你可以设置margin的。widget你布局了吧,这样写。 layout->setMargins(0); widget没有最小值一说,可以是0[/quote] 确实好使,多谢!
冷静忍耐 2016-06-16
  • 打赏
  • 举报
回复
直接不用groupbox 随便放个widget,然后把radioBtn放到widget上,再把Widget当做groupbox布局进去
聆听浪花 2016-06-16
  • 打赏
  • 举报
回复
使用qss可以去掉边框

pGroupBox->setStyleSheet("border: none;");
冷静忍耐 2016-06-16
  • 打赏
  • 举报
回复
引用 4 楼 yangshen1990 的回复:
好像没什么区别,是不是这个边框宽度已经是widget的最小值了,不可能完全消除?
回复先引用一下。 不是的,你可以设置margin的。widget你布局了吧,这样写。 layout->setMargins(0); widget没有最小值一说,可以是0
yangshen1990 2016-06-16
  • 打赏
  • 举报
回复
好像没什么区别,是不是这个边框宽度已经是widget的最小值了,不可能完全消除?
冷静忍耐 2016-06-16
  • 打赏
  • 举报
回复
引用 2 楼 yangshen1990 的回复:
widget能给radiobutton分组吗,应该只有groupbox可以分组吧
只要radiobutton不在一个widget里面就能分组

16,203

社区成员

发帖
与我相关
我的任务
社区描述
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
社区管理员
  • Qt
  • 亭台六七座
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧