widgets_gridlayout.py 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. # Only needed for access to command line arguments
  2. import sys
  3. from PyQt5.QtGui import QPalette, QColor
  4. from PyQt5.QtWidgets import QMainWindow, QGridLayout, QWidget, QApplication
  5. # 自定义窗口,继承 QMainWindow
  6. def index_changed(s):
  7. print(s)
  8. class MainWindow(QMainWindow):
  9. def __init__(self, *args, **kwargs):
  10. super(MainWindow, self).__init__(*args, **kwargs)
  11. self.setWindowTitle("My Awesome App") # 标题
  12. layout = QGridLayout()
  13. layout.addWidget(Color('red'), 0, 0)
  14. layout.addWidget(Color('green'), 0, 1)
  15. layout.addWidget(Color('blue'), 1, 0)
  16. layout.addWidget(Color('purple'), 1, 1)
  17. widget = QWidget()
  18. widget.setLayout(layout)
  19. self.setCentralWidget(widget)
  20. class Color(QWidget):
  21. def __init__(self, color, *args, **kwargs):
  22. super(Color, self).__init__(*args, **kwargs)
  23. self.setAutoFillBackground(True)
  24. palette = self.palette()
  25. palette.setColor(QPalette.Window, QColor(color))
  26. self.setPalette(palette)
  27. if __name__ == '__main__':
  28. app = QApplication(sys.argv)
  29. window = MainWindow()
  30. window.show() # 默认下 windows 是隐藏的
  31. # 开启事件循环
  32. app.exec_()