QT 仪表控件的设计与实现

实物图

本设计实现对程序的鼠标拖动,点击右键实现关闭应用程序,并且含有扫描余晖
动态仪表盘

部分关键代码

void Widget::paintEvent(QPaintEvent *ev)
{
   
    QPainter painter(this);
    painter.setRenderHint(QPainter::Antialiasing);// 抗锯齿

    float scale = qMin(width(),height());         // 获取窗口最小值

    //设置缩放比例和原点的先后顺序很重要
    painter.scale(scale/m_refSize,scale/m_refSize);//缩放坐标系,使其收缩自如
    painter.translate(m_refSize/2,m_refSize/2);    //定义坐标原点

    drawFrame(painter);
    drawDivding(painter);
    drawNumberIndicator(painter);
    drawIndicator(painter);
    drawNumberSpeed(painter);

    m_wgt_mileage->setGeometry((width() - m_wgt_mileage->width()) / 2 + 30,
                               height() - m_wgt_mileage->height() - 60,m_wgt_mileage->width(),
                               m_wgt_mileage->height());
}

//绘制边框
void Widget::drawFrame(QPainter &p)
{
   
    p.save();//保存当前的画家状态(将状态推入堆栈)。save()后面必须跟着相应的restore();函数的作用是:释放堆栈。
    p.setPen(Qt::NoPen);

    QLinearGradient lg1(-m_radius,-m_radius,m_radius,m_radius);//渐变区域
    lg1.setColorAt(
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值