# Only needed for access to command line arguments import sys from PyQt5.QtGui import 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") # 标题 # pagelayout = QVBoxLayout() # button_layout = QHBoxLayout() # layout = QStackedLayout() # # pagelayout.addLayout(button_layout) # pagelayout.addLayout(layout) # # for n, color in enumerate(['red', 'green', 'blue', 'yellow', 'purple']): # btn = QPushButton(str(color)) # btn.pressed.connect(lambda n=n: layout.setCurrentIndex(n)) # button_layout.addWidget(btn) # layout.addWidget(Color(color)) tabs = QTabWidget() tabs.setDocumentMode(False) tabs.setTabPosition(QTabWidget.North) tabs.setMovable(True) for n, color in enumerate(['red', 'green', 'blue', 'yellow', 'purple']): tabs.addTab(Color(color), color) self.setCentralWidget(tabs) 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_()