widgets_gridlayout.py 1.2 KB

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