I have a widget like below:
class MainWidget(QWidget):
#This is grabbed by another function for the name of the page
name = "First Page"
def __init__(self, parent, sidebarWidget, customModulesLen):
QWidget.__init__(self, parent=parent)
self.customModulesLen = customModulesLen #How many pages there are total
self.parent = parent #The parent QStackedWidget
self.sidebarWidget = sidebarWidget #The progress sidebar
#This the only real content so far, a button to go to the next page
lay = QVBoxLayout(self)
pushButton = QPushButton("Next")
lay.addWidget(pushButton)
pushButton.clicked.connect(self.onNext)
def onNext(self):
"""Iterate forward in the QStackedWidget, and update the progress bar"""
if self.parent.Stack.currentIndex() < self.customModulesLen:
activeMenu = self.sidebarWidget.menuContainer.findChildren(QLabel)[self.parent.Stack.currentIndex() + 1]
activeMenu.setPalette(self.sidebarWidget.activeMenuPalette)
previousMenu = self.sidebarWidget.menuContainer.findChildren(QLabel)[self.parent.Stack.currentIndex()]
previousMenu.setPalette(self.sidebarWidget.inactiveMenuPalette)
self.parent.Stack.setCurrentIndex((self.parent.Stack.currentIndex() + 1) % (self.customModulesLen + 1))
The above widget is a page that I'm importing and using for a QStackedWidget
. It works just fine, and doesn't appear to be against any major conventions to me atleast.
The problem is that I've never really done this before in PyQT, and I'm having some difficulty determining if this is a good approach at accomplishing this, or if there's some shortcuts or general good idea's I'm missing.