如何在QListView中显示索引号?
How to display index number in QListView?
我有 ListView 并遍历字典。我想在视图中显示每行的索引号。
model = QtGui.QStandardItemModel()
self.listView.setModel(model)
results = {'D2_SMI_1': True, 'D2_SMI_2': False}
for key, value in results.items():
item = QStandardItem(key)
item.setCheckable(True)
item.setCheckState(value)
model.appendRow(item)
一个可能的解决方案是通过委托添加号码:
import sys
from PyQt5.QtGui import QStandardItem, QStandardItemModel
from PyQt5.QtWidgets import QApplication, QListView, QStyledItemDelegate
class Delegate(QStyledItemDelegate):
def initStyleOption(self, option, index):
super().initStyleOption(option, index)
option.text = f"{index.row() + 1}. {option.text}"
def main():
app = QApplication(sys.argv)
model = QStandardItemModel()
for text in ("D2_SMI_1", "D2_SMI_2", "D2_SMI_3", "D2_SMI_4"):
item = QStandardItem(text)
model.appendRow(item)
view = QListView()
view.setModel(model)
view.resize(640, 480)
view.show()
delegate = Delegate(view)
view.setItemDelegate(delegate)
ret = app.exec_()
sys.exit(ret)
if __name__ == "__main__":
main()
我有 ListView 并遍历字典。我想在视图中显示每行的索引号。
model = QtGui.QStandardItemModel()
self.listView.setModel(model)
results = {'D2_SMI_1': True, 'D2_SMI_2': False}
for key, value in results.items():
item = QStandardItem(key)
item.setCheckable(True)
item.setCheckState(value)
model.appendRow(item)
一个可能的解决方案是通过委托添加号码:
import sys
from PyQt5.QtGui import QStandardItem, QStandardItemModel
from PyQt5.QtWidgets import QApplication, QListView, QStyledItemDelegate
class Delegate(QStyledItemDelegate):
def initStyleOption(self, option, index):
super().initStyleOption(option, index)
option.text = f"{index.row() + 1}. {option.text}"
def main():
app = QApplication(sys.argv)
model = QStandardItemModel()
for text in ("D2_SMI_1", "D2_SMI_2", "D2_SMI_3", "D2_SMI_4"):
item = QStandardItem(text)
model.appendRow(item)
view = QListView()
view.setModel(model)
view.resize(640, 480)
view.show()
delegate = Delegate(view)
view.setItemDelegate(delegate)
ret = app.exec_()
sys.exit(ret)
if __name__ == "__main__":
main()