layout_8.py 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. import sys
  2. from PyQt5.QtWidgets import QMainWindow, QStackedLayout, QWidget, QApplication, QVBoxLayout, QHBoxLayout, QPushButton
  3. from layout_colorwidget import Color
  4. class MainWindow(QMainWindow):
  5. def __init__(self):
  6. super().__init__()
  7. self.setWindowTitle("My App")
  8. page_layout = QVBoxLayout()
  9. button_layout = QHBoxLayout()
  10. self.stack_layout = QStackedLayout()
  11. page_layout.addLayout(self.stack_layout)
  12. page_layout.addLayout(button_layout)
  13. btn = QPushButton("red")
  14. btn.pressed.connect(self.activate_tab_1)
  15. button_layout.addWidget(btn)
  16. self.stack_layout.addWidget(Color("red"))
  17. btn = QPushButton("green")
  18. btn.pressed.connect(self.activate_tab_2)
  19. button_layout.addWidget(btn)
  20. self.stack_layout.addWidget(Color("green"))
  21. btn = QPushButton("yellow")
  22. btn.pressed.connect(self.activate_tab_3)
  23. button_layout.addWidget(btn)
  24. self.stack_layout.addWidget(Color("yellow"))
  25. widget = QWidget()
  26. widget.setLayout(page_layout)
  27. self.setCentralWidget(widget)
  28. def activate_tab_1(self):
  29. self.stack_layout.setCurrentIndex(0)
  30. def activate_tab_2(self):
  31. self.stack_layout.setCurrentIndex(1)
  32. def activate_tab_3(self):
  33. self.stack_layout.setCurrentIndex(2)
  34. app = QApplication(sys.argv)
  35. window = MainWindow()
  36. window.show()
  37. sys.exit(app.exec_())