QT widget实现手机界面滑屏效果,支持鼠标滑动,触摸屏上滑动

 随着智能手机的不断普及,手机屏幕成为人机交互的重要方式。对于主界面的左右翻页效果。Qt如何实现呢?


 效果如图:

标题

 

部分代码:

void AnimationStackedWidget::renderPreviousWidget(QPainter &painter, QTransform &transform)
{
	QWidget *w = widget(m_previousIndex);
	QRect rect = w->geometry();
	QPixmap pixmap(QSize(rect.width(), rect.height()));
	pixmap.fill(Qt::transparent);//用透明色填充
	w->render(&pixmap);
	Q_UNUSED(transform);
	if (m_bRight)
	{
		
		painter.drawPixmap(width() / 2, 0, pixmap);
	}
	else
	{
		painter.drawPixmap(-width() / 2 - width(), 0, pixmap);
	}
}

void AnimationStackedWidget::renderCurrentWidget(QPainter &painter, QTransform &transform)
{
	QWidget *w = widget(m_currentIndex);
	QRect rect = w->geometry();
	QPixmap pixmap(QSize(rect.width(), rect.height()));
	pixmap.fill(Qt::transparent);//用透明色填充
	w->render(&pixmap);
	transform.translate(m_currentValue, 0);
	painter.setTransform(transform);
	if (m_bRight)
	{
		painter.drawPixmap(-width() / 2, 0, pixmap);
	}
	else
	{
		painter.drawPixmap(-width() / 2, 0, pixmap);
		
	}
}

 

你可能感兴趣的:(Qt)