很简单的
1、使用背景图片
2、单独实现一个类,使用paintEvent在里面划线
3、利用事件监听来划线
2、3灵活性比较高,用代码控制,不管是虚线、实线,甚至是其他图形都可以,相比之下,使用3更好,因为不可能需要一些单独的功能都去实现一个类。。。且事件监听比较方便!
只需要两步:
1、
line_label->installEventFilter(this);
2、
bool ContentWidget::eventFilter(QObject *obj, QEvent *event)
{
if(obj == line_label)
{
if(event->type() == QEvent::Paint)
{
int label_height= line_label->height();
int label_width = line_label->width();
QPainter painter(line_label);
painter.setPen(QPen(QColor(220, 220, 220), 1, Qt::DashLine));
painter.drawLine(label_width/2, 0, label_width/2, label_height);
}
}
return QWidget::eventFilter(obj, event);
}
详情请参考:
Qt之360安全卫士主界面(中央窗体) 里面包含划线部分。