QListWidget选择按行排序的项目

时间:2014-06-25 07:22:43

标签: python pyqt

我已经启用了一个启用了扩展选择的QListWidget self.sensors.setSelectionMode(QAbstractItemView.ExtendedSelection)。 要获取所有选定项目的文本,请执行以下操作:

for item in self.sensors.selectedItems():            
    target.write(" "+item.text()+",")

然而,输出按选择顺序排序。有没有快速的方法来获取按行号排序的项目?我可以使用QListWidget.row(self.sensors, item)获取项目的行。

1 个答案:

答案 0 :(得分:1)

# create a dict containing index and corresponding item
tempDict = {}
for item in self.sensors.selectedItems():
    tempDict[self.sensors.row(item)] = item
# sort the index and store as a list (`sorted()` does this for you)
tempIndexes = sorted(tempDict)

# define a list to contain the resultant items i.e sorted items
resultItems = []

for index in tempIndexes:
    resultItems.append(tempDict[index])

for it in resultItems:
    print(it.text())