In this PyQt5 Tutorial, we are going to look how to rotate different widget items with QStackedWidget.
Buy Me a Coffee? Your support is much appreciated!
PayPal Me: https://www.paypal.me/jiejenn/5
Venmo: @Jie-Jenn
Source Code:
import sys
from PyQt5.QtWidgets import QApplication, QWidget, QPushButton, QLineEdit, QRadioButton, QStackedWidget, \
QVBoxLayout, QHBoxLayout
from PyQt5.QtCore import Qt
class WidgetButtons(QWidget):
def __init__(self):
super().__init__()
layout = QVBoxLayout()
for i in range(4):
layout.addWidget(QPushButton(f'Button #{i}'))
self.setLayout(layout)
class WidgetLineEdits(QWidget):
def __init__(self):
super().__init__()
layout = QVBoxLayout()
for i in range(4):
layout.addWidget(QLineEdit(f'LineEdit #{i}'))
self.setLayout(layout)
class WidgetRadioButtons(QWidget):
def __init__(self):
super().__init__()
layout = QVBoxLayout()
for i in range(4):
layout.addWidget(QRadioButton(f'RaidoButton #{i}'))
self.setLayout(layout)
class AppDemo(QWidget):
def __init__(self):
super().__init__()
mainLayout = QVBoxLayout()
self.stackedWidget = QStackedWidget()
self.stackedWidget.addWidget(WidgetButtons()) # index 0
self.stackedWidget.addWidget(WidgetLineEdits()) # index 1
self.stackedWidget.addWidget(WidgetRadioButtons()) # index 2
buttonPrevious = QPushButton('Previous')
buttonPrevious.clicked.connect(self.previousWidget)
buttonNext = QPushButton('Next')
buttonNext.clicked.connect(self.nextWidget)
buttonLayout = QHBoxLayout()
buttonLayout.addWidget(buttonPrevious)
buttonLayout.addWidget(buttonNext)
mainLayout.addWidget(self.stackedWidget)
mainLayout.addLayout(buttonLayout)
self.setLayout(mainLayout)
def nextWidget(self):
self.stackedWidget.setCurrentIndex((self.stackedWidget.currentIndex() + 1) % 3)
def previousWidget(self):
self.stackedWidget.setCurrentIndex((self.stackedWidget.currentIndex() - 1) % 3)
app = QApplication(sys.argv)
demo = AppDemo()
demo.show()
sys.exit(app.exec_())