一般我们很好实现在Qt主界面上实现画图,通过paintEvent(QPaintEvent *event)就可以实现在界面上画各种图案,但是在label上该如何操作呢?下面向大家介绍如何在label上画方框。
这里通过自定义一个label类,在自定义label类mylabel中还是使用paintEvent(QPaintEvent *event)函数,对其进行重写,但是这个类还是继承于QLabel的,将方框实现在此函数中,这样我们就可以使用自己写的mylabel类了。下面是实现该类的两个主要函数。
void mylabel::paintEvent(QPaintEvent *event)
{
QLabel::paintEvent(event);
QPainter painter(this);
QPen pen;
pen.setColor(QColor(255,0,0));//设置颜色
pen.setWidth(2);//设置宽度
painter.setPen(pen);
painter.drawRect(x, y, cols, rows);//自定义实现方框的左上角坐标和长宽
}
/********通过改变坐标移动方框*****/
void mylabel::rect_clicked1(const int x, const int y, const int cols, const int rows)
{
this->x += x;
this->y += y;
this->cols = cols;
this->rows = rows;
update();//刷新界面
}