# Only needed for access to command line arguments import sys from PyQt5.QtCore import * from PyQt5.QtGui import QPixmap, QPalette, QColor from PyQt5.QtWidgets import * # 自定义窗口,继承 QMainWindow class MainWindow(QMainWindow): def __init__(self, *args, **kwargs): super(MainWindow, self).__init__(*args, **kwargs) self.setWindowTitle("My Awesome App") # 标题 # layout = QVBoxLayout() # widgets = [QCheckBox, # QComboBox, # QDateEdit, # QDateTimeEdit, # QDial, # QDoubleSpinBox, # QFontComboBox, # QLCDNumber, # QLabel, # QLineEdit, # QProgressBar, # QPushButton, # QRadioButton, # QSlider, # QSpinBox, # QTimeEdit] # for w in widgets: # layout.addWidget(w()) layout1 = QHBoxLayout() layout2 = QVBoxLayout() layout3 = QVBoxLayout() layout1.setContentsMargins(0, 0, 0, 0) layout1.setSpacing(20) layout2.addWidget(Color('red')) layout2.addWidget(Color('yellow')) layout2.addWidget(Color('purple')) layout1.addLayout(layout2) layout1.addWidget(Color('green')) layout3.addWidget(Color('red')) layout3.addWidget(Color('blue')) layout1.addLayout(layout3) widget = QWidget() widget.setLayout(layout1) self.setCentralWidget(widget) def index_changed(self, s): print(s) class Color(QWidget): def __init__(self, color, *args, **kwargs): super(Color, self).__init__(*args, **kwargs) self.setAutoFillBackground(True) palette = self.palette() palette.setColor(QPalette.Window, QColor(color)) self.setPalette(palette) if __name__ == '__main__': app = QApplication(sys.argv) window = MainWindow() window.show() # 默认下 windows 是隐藏的 # 开启事件循环 app.exec_()