• 1672阅读
  • 0回复

怎样在一个界面内实现多个QRect旋转 [复制链接]

上一主题 下一主题
离线lilysulia
 

只看楼主 倒序阅读 楼主  发表于: 2021-06-22

include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QTimer>
#include <QPainter>
#include <QPixmap>
#include <QPaintEvent>

MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);

    QTimer *tim = new QTimer(this);
    connect(tim,SIGNAL(timeout()),this,SLOT(update()));
    tim->start(1);

}

MainWindow::~MainWindow()
{
    delete ui;
}

void MainWindow::paintEvent(QPaintEvent *event)
{
    static int rat = 0;
    static int unrat = 0;
    rat = rat >= 360?0:rat+5;
//    unrat = 360-rat;
    QPainter painter(this);
    if(unrat == 0)
    {
        QColor quacolor(60,60,120);
        painter.setBrush(quacolor);
        painter.translate(200,200);

        painter.rotate(rat);
        painter.drawRect(QRect(-50,-50,100,100));\
        unrat++;
    }
    else  if(unrat == 1)
    {
        QColor quacolor(255,0,0);
        painter.setBrush(quacolor);
        painter.translate(300,300);

        painter.rotate(360-rat);
        painter.drawRect(QRect(-50,-50,100,100));
        unrat = 0;
    }

}
老师我需要做一个程序,在一个桌面内实现多个QRect进行不同方向的旋转,我这个写代码
屏幕闪动的很厉害,请问怎样才能平稳的显示多个QRect,在同一个桌面内,平稳的向各个
方向旋转呢,谢谢老师了!
快速回复
限100 字节
 
上一个 下一个