qt网络通信

#include "widget.h"
#include "ui_widget.h"

Widget::Widget(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::Widget)
{
    ui->setupUi(this);
    this->lab1=new QLabel("时间",this);
    lab1->resize(100,40);
    connect(&t1, &QTimer::timeout, this, &Widget::timeout_slot);
    t1.start(1000);
    connect(&t1,&QTimer::timeout,[&](){
          this->update();
    });
}

Widget::~Widget()
{
    delete ui;
}
 void Widget::timeout_slot()
 {
    QTime sysTime = QTime::currentTime();
     QString tm = sysTime.toString("hh:mm:ss");
     this->lab1->setText(tm);


 }
 void  Widget:: paintEvent(QPaintEvent *event)
{


     QPainter painter(this);

        //设置画笔
        QPen pen;
        pen.setColor(QColor(144,66,255));
        pen.setStyle(Qt::SolidLine);
        pen.setWidth(5);

        painter.setPen(pen);
        painter.translate(this->width()/2,this->height()/2);//重设画家坐标中心

        painter.drawPoint(0,0);//画个圆心点
        painter.setBrush(QBrush(Qt::lightGray));  // 设置填充颜色为浅灰色
        painter.drawEllipse(QPoint(0,0),200,200);//画圆

        //画小时刻度线
        painter.setPen(QPen(Qt::black,5));
        for (int i = 0; i < 12; ++i) {

            painter.drawLine(198, 0, 190, 0);
            painter.rotate(30.0);  // 每次旋转30度
        }
        //画分钟刻度线
        painter.setPen(QPen(Qt::black, 2));
        for (int i = 0; i < 60; ++i) {
            if (i % 5 != 0) {  // 排除小时刻度线的位置
                painter.drawLine(198, 0, 194, 0);
            }
            painter.rotate(6.0);  // 每次旋转30度  // 每次旋转6度
        }



        QTime time=QTime::currentTime();
        //画秒\分\时线
        painter.setPen(QPen(Qt::blue,2));    //秒针长而细
        painter.save();
        double secondAngle= time.second()*6.0;
        painter.rotate(secondAngle);
        painter.drawLine(0,0,0,-150);
        painter.restore();

        painter.setPen(QPen(Qt::green,4));     //分针中等
        painter.save();
        double minuteAngle= (time.minute() + time.second() / 60.0) * 6.0;
        painter.rotate(minuteAngle);
        painter.drawLine(0,0,0,-100);
        painter.restore();

        painter.setPen(QPen(Qt::red,6));       //时针短而粗
        painter.save();
        double hourAngle= (time.hour() % 12 + time.minute() / 60.0) * 30.0;
        painter.rotate(hourAngle);
        painter.drawLine(0,0,0,-50);
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值