分组框通常带有一个边框和一个标题栏,作为容器部件来使用,在其中可以布置各种窗口部件。通常带有一个边框和一个标题栏,作为容器部件来使用,在其中可以布置各种窗口部件。布局时可用作一组控件的容器,但是需要注意的是,内部必须使用布局控件(如QBoxLayout)进行布局。
//创建复选框
QGroupBox *groupBox = new QGroupBox(tr("服务器配置"));
groupBox->setFlat(false);//边框是否有线
groupBox->setCheckable(true);//是否有复选框
groupBox->setChecked(false);//默认是否勾选复选框
QHBoxLayout *mlayout = new QHBoxLayout();
m_ipLabel = new QLabel(tr("服务器ip:"));
m_ipLabel->setFixedSize(120,30);
m_ipLineEdit = new QLineEdit(this);
m_ipLineEdit->setFixedSize(180,40);
m_portLabel = new QLabel(tr("服务器端口:"));
mlayout->addWidget(m_ipLabel);
mlayout->addWidget(m_ipLineEdit);
mlayout->addStretch();
groupBox->setLayout(mlayout); //往里面添加布局
setFlat(bool)是否扁平化,组框通常由顶部带有标题的周围框架组成。如果启用此属性,则大多数样式只绘制框架的顶部;否则,将绘制整个框架。(即边框有无线)
效果如图:
qss:
QGroupBox
{
border: 2px solid red;
border-radius:5px;
margin-top:2ex;//文字在方框中位置的偏离度---以上边缘为基线
font-family:楷体;
font:bold 28px; //字体大小
}
QGroupBox::title
{
subcontrol-origin:margin;
subcontrol-position:top left;
left:7px;//标题偏离左边缘的距离
margin-left: 0px;
padding:0.1px;
}
代码设置:
groupBox->setStyleSheet("QGroupBox {border-width:1px;border-style:solid;border-color:lightGray;margin-top:1.5ex;}"\
"QGroupBox::title{subcontrol-origin:margin;subcontrol-position:top left;left:7px;margin-left: 0px;padding:0.1px;}");
扩展: