| 41 | self.initUi() |
| 42 | |
| 43 | def initUi(self): |
| 44 | # 初始化界面 |
| 45 | # 通过QListWidget的当前item变化来切换QStackedWidget中的序号 |
| 46 | self.listWidget.currentRowChanged.connect( |
| 47 | self.stackedWidget.setCurrentIndex) |
| 48 | # 去掉边框 |
| 49 | self.listWidget.setFrameShape(QListWidget.NoFrame) |
| 50 | # 隐藏滚动条 |
| 51 | self.listWidget.setVerticalScrollBarPolicy(Qt.ScrollBarAlwaysOff) |
| 52 | self.listWidget.setHorizontalScrollBarPolicy(Qt.ScrollBarAlwaysOff) |
| 53 | # 这里就用一般的文本配合图标模式了(也可以直接用Icon模式,setViewMode) |
| 54 | for i in range(20): |
| 55 | item = QListWidgetItem( |
| 56 | QIcon('Data/0%d.ico' % randint(1, 8)), str('选 项 %s' % i), self.listWidget) |
| 57 | # 设置item的默认宽高(这里只有高度比较有用) |
| 58 | item.setSizeHint(QSize(16777215, 60)) |
| 59 | # 文字居中 |
| 60 | item.setTextAlignment(Qt.AlignCenter) |
| 61 | |
| 62 | # 再模拟20个右侧的页面(就不和上面一起循环放了) |
| 63 | for i in range(20): |
| 64 | label = QLabel('我是页面 %d' % i, self) |
| 65 | label.setAlignment(Qt.AlignCenter) |
| 66 | # 设置label的背景颜色(这里随机) |
| 67 | # 这里加了一个margin边距(方便区分QStackedWidget和QLabel的颜色) |
| 68 | label.setStyleSheet('background: rgb(%d, %d, %d);margin: 50px;' % ( |
| 69 | randint(0, 255), randint(0, 255), randint(0, 255))) |
| 70 | self.stackedWidget.addWidget(label) |
| 71 | |
| 72 | |
| 73 | # 美化样式表 |