MCPcopy Index your code
hub / github.com/PyQt5/PyQt / __init__

Method __init__

QListView/CustomWidgetSortItem.py:71–102  ·  view source on GitHub ↗
(self, *args, **kwargs)

Source from the content-addressed store, hash-verified

69class Window(QWidget):
70
71 def __init__(self, *args, **kwargs):
72 super(Window, self).__init__(*args, **kwargs)
73 self.resize(800, 600)
74 layout = QVBoxLayout(self)
75 # 名字排序
76 layout.addWidget(QPushButton('以名字升序', self, clicked=self.sortByName))
77 # 时间倒序
78 layout.addWidget(QPushButton('以时间倒序', self, clicked=self.sortByTime))
79 # listview
80 self.listView = QListView(self)
81 layout.addWidget(self.listView)
82 # 数据模型
83 self.dmodel = QStandardItemModel(self.listView)
84 # 排序代理模型
85 self.fmodel = SortFilterProxyModel(self.listView)
86 self.fmodel.setSourceModel(self.dmodel)
87 self.listView.setModel(self.fmodel)
88
89 # 模拟生成50条数据
90 for _ in range(50):
91 name = randomChar(5)
92 times = time() + randint(0, 30) # 当前时间随机+
93 value = '{}-{}'.format(name, times) # 内容用-分开
94 item = QStandardItem(value)
95 # item.setData(value, Qt.UserRole + 2)
96 self.dmodel.appendRow(item)
97 # 索引
98 index = self.fmodel.mapFromSource(item.index())
99 # 自定义的widget
100 widget = CustomWidget(value, self)
101 item.setSizeHint(widget.sizeHint())
102 self.listView.setIndexWidget(index, widget)
103
104 def sortByTime(self):
105 # 按照时间倒序排序

Callers 1

__init__Method · 0.45

Calls 8

resizeMethod · 0.95
sizeHintMethod · 0.95
randomCharFunction · 0.85
randintFunction · 0.85
addWidgetMethod · 0.80
appendRowMethod · 0.80
CustomWidgetClass · 0.70

Tested by

no test coverage detected