QLineEdit的简单美化

通过stylesheet美化 基本的BoxModel都是可以通用的。也就是其他的控件大部分也可以,比如combobox也行。

下面很多属性都可以设置,不同的控件状态配置了不同的,免得重复

//普通的状态

QLineEdit
{

//边界1像素 实线 颜色rgb  或者border:none 没有边界
border:1px solid rgb(180, 180, 180);

//背景的颜色
background: rgb(230,230,230);
//边角4像素圆滑

border-radius: 4px;

}

//鼠标滑动到LineEditor上面的时候

QLineEdit::hover
{

 //字体的颜色

  color:green
  border-color:rgb(50,480,40);
  background-color:green;
}

//被禁用的时候

QLineEdit::disabled

{

}



2QlineEdit里面添加按钮图片。

方式1 通过在lineEdit里面 setLayout来设置一个QHboxLayout. layout添加一个stretch 和一个button.

QLineEdit* m_edit=new QLineEdit(this);
QSize editsize(200,30);
QSize btsize(30,30);
m_edit->setFixedSize(editsize);

QPushButton* m_bt=new QPushButton();
m_bt->setFixedSize(btsize);

QHBoxLayout* layout=new QHBoxLayout();
layout->setContentsMargins(0,0,0,0);
layout->setSpacing(0);
layout->addStretch();
layout->addWidget(m_bt);
m_edit->setLayout(layout);
m_edit->setTextMargins(0,0,m_bt->width()-1,0);
m_bt->setCursor(QCursor(Qt::PointingHandCursor));


方式2 自定义一个widget。添加LineEdit和PushButton 然后自己修改paintEvent描绘外边框。LineEdit->setFrame(false)让他不描绘frame

LineEdit->setFrame(false)

关键描绘边框

painter->setRenderHints(QPainter::Antialiasing|QPainter::HighQualityAntialiasing);
painter->setPen(QPen(SE_BG_PEN_COLOR,1));
painter->setBrush(SE_BG_BRUSH_COLOR);
painter->drawRoundedRect(rect(),SE_RECT_RADIUS,SE_RECT_RADIUS);



评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值