效果图: 目录结构: 头文件: 源文件: 搜素:TestWidget.zip可以找到资源
#ifndef MYWIDGET_H #define MYWIDGET_H #include <QMainWindow> namespace Ui { class MyWidget; } class MyWidget : public QMainWindow { Q_OBJECT public: explicit MyWidget(QWidget *parent = 0); ~MyWidget(); void paintEvent(QPaintEvent *event); private: Ui::MyWidget *ui; int crossCenterX; int crossCenterY; QTimer *timer; int step; bool isReverse; }; #endif // MYWIDGET_H
#include "mywidget.h" #include "ui_mywidget.h" #include <QPainter> #include <QTimer> MyWidget::MyWidget(QWidget *parent) : QMainWindow(parent), ui(new Ui::MyWidget) { ui->setupUi(this); //设置窗体的大小 this->resize(512,512); //设置中心点的坐标,保存为变量 crossCenterX=this->width()/2; crossCenterY=this->height()/2; //设置定时器,时间间隔围为80ms timer=new QTimer(this); step=-100; isReverse=false; //设置定时触发信号,在定时信号处理的槽函数中,判断当前的偏移量是否够在±100范围内 //当超出边界范围时,改变方向标记h connect(timer,&QTimer::timeout,[=](){ if(step>100){ isReverse=true; }else if(step<-100) { isReverse=false; } update(); }); timer->setInterval(80); timer->start(); } MyWidget::~MyWidget() { delete ui; } void MyWidget::paintEvent(QPaintEvent *event){ QPainter painter(this); painter.setBrush(Qt::black); painter.drawRect(rect()); painter.setPen(Qt::white); //绘制文字 QFont font; font.setPointSize(20); painter.setFont(font); painter.drawText(20,40,"TV"); //绘制右下角图片 painter.drawPixmap(this->width()-128,this->height()-128,128,128,QPixmap(":/Images/test.png")); //水平线 painter.drawLine(QPoint(crossCenterX-256/2+step,crossCenterY),QPoint(crossCenterX+256/2+step,crossCenterY)); painter.drawLine(QPoint(crossCenterX+step,crossCenterY-256/2),QPoint(crossCenterX+step,crossCenterY+256/2)); if(!isReverse) { step+=3;//向正方向运行 }else{ step-=3;//向反方向运行 } }
本网页所有视频内容由 imoviebox边看边下-网页视频下载, iurlBox网页地址收藏管理器 下载并得到。
ImovieBox网页视频下载器 下载地址: ImovieBox网页视频下载器-最新版本下载
本文章由: imapbox邮箱云存储,邮箱网盘,ImageBox 图片批量下载器,网页图片批量下载专家,网页图片批量下载器,获取到文章图片,imoviebox网页视频批量下载器,下载视频内容,为您提供.
阅读和此文章类似的: 全球云计算