可添加其他控件的控件容器
先上效果图:
界面描述:这里是五个此类控件,由于本人非美工,所以颜色喝效果没有调的很好,这其中的颜色都可以随意变化,可以随意拖动大小。标题框随着标题的长度变化,无标题是标题框不显示。控件中添加其他控件支持添加多个,暂时只写入了横向排列(若想纵向排列只需改变下源码,改成纵向排列即可)。
关键代码:
控件代码:
Form::Form(QWidget *parent) :
QWidget(parent),
ui(new Ui::Form)
{
ui->setupUi(this);
layout = new QHBoxLayout();
}
Form::~Form()
{
delete ui;
}
void Form::paintEvent(QPaintEvent *)
{
m_width = this->width();
m_height = this->height();
lineWidth = m_height/10;
QPainter painter(this);
painter.setRenderHints(QPainter::Antialiasing | QPainter::TextAntialiasing);
painter.save();
painter.setPen(Qt::NoPen);
painter.setBrush(bgBrush);
painter.drawRect(rect());
painter.restore();
drawLines(&painter);
drawEc(&painter);
drawTitle(&painter,QPoint(eWidth/2,eWidth/2));//画标题框和标题
setLayoutPosition();//设置layout位置
}
void Form::drawTitle(QPainter* painter,QPoint point1)
{
if(this->text == "")
{
return;
}
int rectWidth = text.length()*30;
qDebug()<<"rectWidth:"<<rectWidth;
int rectHeight = m_height/7;
QPoint pointStart((m_width-rectWidth