PyQt5 List Widget Программный выбор всех элементов

1

Я добавляю несколько элементов в виджет списка, затем он устанавливает последний элемент для выбранного элемента. Я хотел бы добавить несколько элементов и выбрать их все. Как мне это сделать?

  • 0
    Все предметы или только добавленные?
  • 0
    Будет ли работать элемент списка, а затем делать его выбранным (и делать это для каждого элемента, который вы хотите выбрать)?
Показать ещё 3 комментария
Теги:
python-3.x
pyqt5
pyqt

1 ответ

1
Лучший ответ

Вы должны установить selectionMode в QAbstractItemView::MultiSelection:

from PyQt5 import QtCore, QtGui, QtWidgets

class MainWindow(QtWidgets.QMainWindow):
    def __init__(self, parent=None):
        super(MainWindow, self).__init__(parent)

        self.listwidget = QtWidgets.QListWidget()
        self.listwidget.setSelectionMode(QtWidgets.QAbstractItemView.MultiSelection)

        self.setCentralWidget(self.listwidget)
        # add some items
        for i in range(5):
            self.listwidget.addItem(str(i))

        # add items with selection
        for i in range(5):
            it = QtWidgets.QListWidgetItem(str(i))
            self.listwidget.addItem(it)
            it.setSelected(True)

        # selected items
        for item in self.listwidget.selectedItems():
            print(item.text())

if __name__ == '__main__':
    import sys
    app = QtWidgets.QApplication(sys.argv)
    w = MainWindow()
    w.resize(640, 480)
    w.show()
    sys.exit(app.exec_())
  • 0
    Это сработало, но я думаю, что это больше связано с «it.setSelected (True)», чем с MultiSelection. Это просто не может быть SingleSelection или NoSelection.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню