Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import sys
- from PySide.QtCore import *
- from PySide.QtGui import *
- class SliderWidget( QWidget ):
- def __init__( self ):
- super( SliderWidget, self ).__init__( parent= None )
- self.buildUI()
- def buildUI( self ):
- self.setLayout( QGridLayout() )
- self.frame1 = QFrame()
- self.frame2 = QFrame()
- self.frame3 = QFrame()
- self.btn = QPushButton( 'GO' )
- self.btn.clicked.connect( self.moveWidgets )
- self.frame1.setFrameStyle( QFrame.StyledPanel )
- self.frame1.setToolTip( 'frame 1' )
- self.frame2.setFrameStyle( QFrame.StyledPanel )
- self.frame2.setToolTip( 'frame 2' )
- self.frame3.setFrameStyle( QFrame.StyledPanel )
- self.frame3.setToolTip( 'frame 3' )
- self.frame1.hide()
- self.frame3.hide()
- self.layout().addWidget( self.frame1 )
- self.layout().addWidget( self.frame2 )
- self.layout().addWidget( self.btn )
- self.layout().addWidget( self.frame3 )
- def moveWidgets( self ):
- self.slideInWidget( self.frame1, 'topDown' )
- self.slideInWidget( self.frame3, 'bottomUp')
- def slideInWidget( self, widget, direction ):
- assert direction in ( 'topDown', 'bottomUp' )
- # SLIDE IN A WIDGET
- if direction == 'topDown':
- start = -1000
- end = 0
- elif direction == 'bottomUp':
- start = 1500
- end = 500
- widget.show()
- self.animGroup = QParallelAnimationGroup()
- slideInAnim = self.slideAnimation( widget, start, end)
- self.animGroup.addAnimation( slideInAnim )
- self.animGroup.start()
- def slideAnimation( self, widget, start, end ):
- slideAnimation = QPropertyAnimation( widget, 'pos' )
- slideAnimation.setDuration( 1000 )
- slideAnimation.setStartValue( QPoint( widget.pos().x(), start ) )
- slideAnimation.setEndValue( QPoint( widget.pos().x(), end ) )
- slideAnimation.setEasingCurve( QEasingCurve.OutCubic )
- return slideAnimation
- if __name__ == "__main__":
- app = QApplication(sys.argv)
- sw = SliderWidget ()
- sw.resize( 800, 750 )
- sw.show()
- sys.exit(app.exec_())
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement