init
This commit is contained in:
66
app/view/widgets/stacked_widget.py
Normal file
66
app/view/widgets/stacked_widget.py
Normal file
@@ -0,0 +1,66 @@
|
||||
# coding:utf-8
|
||||
from PyQt6.QtCore import Qt, pyqtSignal, QEasingCurve
|
||||
from PyQt6.QtWidgets import QFrame, QHBoxLayout, QAbstractScrollArea
|
||||
|
||||
from qfluentwidgets.components.widgets.stacked_widget import PopUpAniStackedWidget
|
||||
|
||||
|
||||
|
||||
class StackedWidget(QFrame):
|
||||
""" Stacked widget """
|
||||
|
||||
currentChanged = pyqtSignal(int)
|
||||
|
||||
def __init__(self, parent=None):
|
||||
super().__init__(parent=parent)
|
||||
self.hBoxLayout = QHBoxLayout(self)
|
||||
self.view = PopUpAniStackedWidget(self)
|
||||
|
||||
self.hBoxLayout.setContentsMargins(0, 0, 0, 0)
|
||||
self.hBoxLayout.addWidget(self.view)
|
||||
|
||||
self.view.currentChanged.connect(self.currentChanged)
|
||||
self.setAttribute(Qt.WidgetAttribute.WA_StyledBackground)
|
||||
|
||||
def isAnimationEnabled(self) -> bool:
|
||||
return self.view.isAnimationEnabled
|
||||
|
||||
def setAnimationEnabled(self, isEnabled: bool):
|
||||
"""set whether the pop animation is enabled"""
|
||||
self.view.setAnimationEnabled(isEnabled)
|
||||
|
||||
def addWidget(self, widget):
|
||||
""" add widget to view """
|
||||
self.view.addWidget(widget)
|
||||
|
||||
def removeWidget(self, widget):
|
||||
""" remove widget from view """
|
||||
self.view.removeWidget(widget)
|
||||
|
||||
def widget(self, index: int):
|
||||
return self.view.widget(index)
|
||||
|
||||
def setCurrentWidget(self, widget, popOut=True):
|
||||
if isinstance(widget, QAbstractScrollArea):
|
||||
widget.verticalScrollBar().setValue(0)
|
||||
|
||||
if not popOut:
|
||||
self.view.setCurrentWidget(widget, duration=300)
|
||||
else:
|
||||
self.view.setCurrentWidget(
|
||||
widget, True, False, 200, QEasingCurve.Type.InQuad)
|
||||
|
||||
def setCurrentIndex(self, index, popOut=True):
|
||||
self.setCurrentWidget(self.view.widget(index), popOut)
|
||||
|
||||
def currentIndex(self):
|
||||
return self.view.currentIndex()
|
||||
|
||||
def currentWidget(self):
|
||||
return self.view.currentWidget()
|
||||
|
||||
def indexOf(self, widget):
|
||||
return self.view.indexOf(widget)
|
||||
|
||||
def count(self):
|
||||
return self.view.count()
|
||||
Reference in New Issue
Block a user