Как добавить два виджета в QStackedWidget?
Допустим, я у меня есть QLineEdit и QLabel.
Как я могу их запихнуть в QStackedWidget оба и выровнять по центру?
from PyQt5.Qt import *
import sys
class Window(QWidget):
def __init__(self, parent = None):
Qwidget.__init__(self,parent)
self.edit = QTextEdit()
self.label = QLabel()
self.stacked_widget = QStackedWidget()
if __name__ == "__main__":
app = QApplication(sys.argv)
window = Window()
window.show()
sys.exit(app.exec_())
Ответы (1 шт):
Автор решения: S. Nick
→ Ссылка
Попробуйте так
import sys
from PyQt5.Qt import *
class Window(QWidget):
def __init__(self):
super().__init__()
self.edit = QTextEdit()
self.label = QLabel('<h2>Hello World</h2>', alignment=Qt.AlignCenter)
self.stack = QWidget()
layout = QVBoxLayout(self.stack)
layout.addWidget(self.label)
layout.addWidget(self.edit)
self.stacked_widget = QStackedWidget(self)
self.stacked_widget.addWidget(self.stack)
hbox = QHBoxLayout(self)
hbox.addWidget(self.stacked_widget)
if __name__ == "__main__":
app = QApplication(sys.argv)
window = Window()
window.show()
sys.exit(app.exec_())
Update
я видимо плохо прочитал ваш вопрос.
import sys
from PyQt5.Qt import *
class Window(QWidget):
def __init__(self):
super().__init__()
self.stack1 = QTextEdit('TextEdit')
self.stack2 = QLabel('<h2>Hello World</h2>', alignment=Qt.AlignCenter)
self.stacked_widget = QStackedWidget(self)
self.stacked_widget.addWidget(self.stack1)
self.stacked_widget.addWidget(self.stack2)
self.lestWidget = QListWidget()
self.lestWidget.setFixedWidth(100)
self.lestWidget.addItems(['TextEdit', 'Label'])
self.lestWidget.currentRowChanged.connect(self.display)
hbox = QHBoxLayout(self)
hbox.addWidget(self.lestWidget)
hbox.addWidget(self.stacked_widget)
def display(self, i):
self.stacked_widget.setCurrentIndex(i)
if __name__ == "__main__":
app = QApplication(sys.argv)
window = Window()
window.show()
sys.exit(app.exec_())


