| 107 | self.fmodel.sort(0) |
| 108 | |
| 109 | def _initItems(self): |
| 110 | # 初始化Items |
| 111 | self.dmodel = QStandardItemModel(self.listView) |
| 112 | self.fmodel = SortFilterProxyModel(self.listView) |
| 113 | self.fmodel.setSourceModel(self.dmodel) |
| 114 | self.listView.setModel(self.fmodel) |
| 115 | |
| 116 | keys = list(NameDict.keys()) |
| 117 | print(keys) # ['清', '元', '唐', '明', '宋'] |
| 118 | classifies = [v[1] for v in NameDict.values()] |
| 119 | for i in range(5): |
| 120 | # 添加5个100, 用于模拟没有分类, 排序的时候就显示在最后面 |
| 121 | classifies.append(100) |
| 122 | print(classifies) # [4, 2, 0, 3, 1, 100, 100, 100, 100, 100] |
| 123 | |
| 124 | # 生成50个Item |
| 125 | for i in range(50): |
| 126 | # name = keys[i % 4] # 随机取一个朝代 |
| 127 | item = QStandardItem() |
| 128 | # 设置ID角色 |
| 129 | item.setData(i, IdRole) |
| 130 | # 设置分类角色 |
| 131 | c = choice(classifies) |
| 132 | item.setData(c, ClassifyRole) |
| 133 | # 设置显示内容 |
| 134 | item.setText('Name: {}\t\tId: {}\t\tClassify: {}'.format( |
| 135 | IndexDict.get(c, '其它'), i, c)) |
| 136 | self.dmodel.appendRow(item) |
| 137 | |
| 138 | |
| 139 | if __name__ == '__main__': |