def __init__(self): super().__init__() self.ui = Ui_MainWindow() self.ui.setupUi(self) self.animation = qtc.QPropertyAnimation() self.fade_animation = qtc.QPropertyAnimation() self.unfade_animation = qtc.QPropertyAnimation() self.side_menu_toggle_speed = 800 self.side_menu_swap_speed = 120 self.easing_curve = qtc.QEasingCurve(qtc.QEasingCurve.Type.OutQuint) self.ui.splitter.setCollapsible(0, True) self.ui.splitter.setCollapsible(1, False) self.ui.paint_interface = PaintInterface.PaintInterface( self.ui.paint_interface_container) self.ui.paint_interface_layout = qtw.QVBoxLayout( self.ui.paint_interface_container) self.ui.paint_interface_layout.setSpacing(0) self.ui.paint_interface_layout.addWidget(self.ui.paint_interface) self.ui.scrollArea.verticalScrollBar().setStyleSheet( 'QScrollBar {width:0px;}') self.ui.stackedWidget.setCurrentWidget(self.ui.file_page) self.ui.file_button.clicked.connect(self.file_information_toggle) self.ui.mask_button.clicked.connect(self.mask_settings_toggle) self.ui.clip_button.clicked.connect(self.clip_information_toggle) self.active_project = Project.Project() self.ui.save_project_button.clicked.connect(self.save_project) self.ui.output_dir_button.clicked.connect(self.set_output_path) self.ui.open_project_button.clicked.connect(self.open_project) self.ui.mask_dir_button.clicked.connect(self.set_mask_directory) self.ui.image_dir_button.clicked.connect(self.set_clip_directory) self.ui.action_open.triggered.connect(self.open_project) self.ui.action_save_file.triggered.connect(self.save_project) self.ui.action_save_as.triggered.connect(self.save_project_as) self.update_settings() self.ui.next_frame_button.clicked.connect( lambda: self.ui.frame_slider.setValue(self.ui.frame_slider.value() + 1)) self.ui.previous_frame_button.clicked.connect( lambda: self.ui.frame_slider.setValue(self.ui.frame_slider.value() - 1)) self.ui.frame_slider.valueChanged.connect(self.update_frame) self.frame_collection = None self.info_opacity = qtw.QGraphicsOpacityEffect(self.ui.info_label) self.info_opacity.setOpacity(0) self.ui.info_label.setGraphicsEffect(self.info_opacity)
def fade_swap_page(self, widget: qtw.QWidget): opacity = qtw.QGraphicsOpacityEffect(self.ui.scrollArea) self.ui.scrollArea.setGraphicsEffect(opacity) self.fade_animation = qtc.QPropertyAnimation(opacity, b'opacity') self.fade_animation.setDuration(self.side_menu_swap_speed) self.fade_animation.setEndValue(0) self.fade_animation.setStartValue(1) self.fade_animation.start() self.unfade_animation = qtc.QPropertyAnimation(opacity, b'opacity') self.unfade_animation.setDuration(self.side_menu_swap_speed) self.unfade_animation.setEndValue(1) self.unfade_animation.setStartValue(0) self.fade_animation.finished.connect( lambda: self.ui.stackedWidget.setCurrentWidget(widget)) self.fade_animation.finished.connect( lambda: self.unfade_animation.start())
def fade_info(self): self.animation = qtc.QPropertyAnimation(self.info_opacity, b'opacity') self.animation.setStartValue(1) self.animation.setEndValue(0) self.animation.setDuration(500) self.animation.finished.connect(lambda: self.ui.info_label.setText('')) self.info_opacity.setOpacity(1) qtc.QTimer.singleShot(1000, lambda: self.animation.start())
def slideInWgt(self, newwidget): if self.m_active: return self.m_active = True _now = self.currentIndex() _next = self.indexOf(newwidget) if _now == _next: self.m_active = False return offsetx, offsety = self.frameRect().width(), self.frameRect().height() self.widget(_next).setGeometry(self.frameRect()) if not self.m_direction == Qt.Orientation.Horizontal: if _now < _next: offsetx, offsety = 0, -offsety else: offsetx = 0 else: if _now < _next: offsetx, offsety = -offsetx, 0 else: offsety = 0 pnext = self.widget(_next).pos() pnow = self.widget(_now).pos() self.m_pnow = pnow offset = QtCore.QPoint(offsetx, offsety) self.widget(_next).move(pnext - offset) self.widget(_next).show() self.widget(_next).raise_() anim_group = QtCore.QParallelAnimationGroup( self, finished=self.animationDoneSlot ) for index, start, end in zip( (_now, _next), (pnow, pnext - offset), (pnow + offset, pnext) ): animation = QtCore.QPropertyAnimation( self.widget(index), b"pos", duration=self.m_speed, easingCurve=self.m_animationtype, startValue=start, endValue=end, ) anim_group.addAnimation(animation) self.m_next = _next self.m_now = _now self.m_active = True anim_group.start(QtCore.QAbstractAnimation.DeletionPolicy.DeleteWhenStopped)