def animation_sidebar(self):
self.m_bSideflag = False
self.pushButton.setText("<<")
self.pushButton.setStyleSheet("QPushButton:hover{color:green} "
"QPushButton{border:2px solid #19EE22; border-radius:60px} "
"QPushButton:pressed{background-color:rgb(25, 225, 125)}")
self.side_Animation = QPropertyAnimation(self.widget_side, b"geometry", self)
self.side_Animation.setEasingCurve(QEasingCurve.InOutSine)
self.side_Animation.setDuration(500)
self.view_Animation = QPropertyAnimation(self.groupBox_view, b"geometry", self)
self.view_Animation.setEasingCurve(QEasingCurve.InOutSine)
self.view_Animation.setDuration(500)
@Slot()
def on_pushButton_clicked(self):
print(self.rect().width(), self.widget_side.width())
if self.m_bSideflag: # 隐藏->弹出
self.side_Animation.setStartValue(
QRect(-self.widget_side.width() + self.pushButton.width(), 0, self.widget_side.width(),
self.widget_side.height()))
self.side_Animation.setEndValue(QRect(0, 0, self.widget_side.width(), self.widget_side.height()))
self.side_Animation.start()
self.view_Animation.setStartValue(
QRect(0, 0, self.widget_side.width(), self.widget_side.height()))
self.view_Animation.setEndValue(
QRect(self.widget_side.width(), 0, self.widget_side.width(), self.widget_side.height()))
self.view_Animation.start()
self.pushButton.setText("<<")
self.pushButton.setToolTip("隐藏侧边栏")
self.m_bSideflag = False
screen = QtGui.QGuiApplication.primaryScreen().availableGeometry()
screen_size = QSize(screen.width() - self.widget_side.width(), screen.height())
else: # 弹出->隐藏
self.side_Animation.setStartValue(QRect(0, 0, self.widget_side.width(), self.widget_side.height()))
self.side_Animation.setEndValue(
QRect(-self.widget_side.width() + self.pushButton.width(), 0, self.widget_side.width(),
self.widget_side.height()))
self.side_Animation.start()
self.view_Animation.setStartValue(
QRect(self.widget_side.width(), 0, self.widget_side.width(), self.widget_side.height()))
self.view_Animation.setEndValue(
QRect(0, 0, self.widget_side.width(), self.widget_side.height()))
self.view_Animation.start()
self.pushButton.setText(">>")
self.pushButton.setToolTip("显示侧边栏")
self.m_bSideflag = True
screen = QtGui.QGuiApplication.primaryScreen().availableGeometry()
screen_size = QSize(screen.width(), screen.height())
self.groupBox_view.setFixedSize(screen_size)#自适应界面
self.widget_side.raise_()
pyqt实现自适应侧边栏动画
最新推荐文章于 2025-02-20 18:55:35 发布