Qt label上画方框实现任意移动

本文介绍在Qt中如何通过自定义Label类实现在界面上画方框,利用paintEvent函数并重写,详细展示了如何设置画笔颜色、宽度及绘制矩形的具体参数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

       一般我们很好实现在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();//刷新界面
}

 

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值