class Widget : public QOpenGLWidget
{
Q_PROPERTY(QPoint mPoint READ getmPoint WRITE setmPoint)
Q_OBJECT
public:
explicit Widget(QWidget *parent = 0);
~Widget();
QPoint getmPoint() {
return mPoint;
}
void setmPoint( QPoint newPoint ) {
mPoint = newPoint;
}
protected:
//void paintEvent(QPaintEvent *e);
void paintGL();
private:
Ui::Widget *ui;
QPoint mPoint;
void Widget::paintGL()
{
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glDisable(GL_DEPTH_TEST);//关闭更新深度缓冲区,
QPainter painter;
painter.begin(this);
painter.setRenderHints(QPainter::Antialiasing);
painter.setRenderHint(QPainter::SmoothPixmapTransform);
QPen pen(Qt::red,2);
painter.setPen(pen);
painter.drawLine(300,0,300,360);
this->resize(960,360);
Widget *m_widget = new Widget(this);
QGridLayout *layout = new QGridLayout(this);
layout->setMargin(0);
layout->addWidget(m_widget,0,0);
setLayout(layout);
QPropertyAnimation *Animation = new QPropertyAnimation(m_widget, "mPoint");
Animation->setDuration(2000); //持续时间
Animation->setStartValue(QPoint(340, 0));
Animation->setEndValue(QPoint(0, 0));
Animation->setEasingCurve(QEasingCurve::Linear);
QParallelAnimationGroup *m_group = new QParallelAnimationGroup(this);
m_group->addAnimation( Animation );
m_group->setDirection(QAbstractAnimation::Forward); //Backward显示 Forward消失
m_group->setLoopCount(1);
m_group->start();
qt 动画
最新推荐文章于 2022-12-22 17:18:28 发布