Python QTableView | Как выделить несколько строк кликом, не удерживая Ctrl?

Я разрабатываю графический интерфейс с QTableView, в котором при необходимости нужно будет выбирать несколько строк. Это означает, что первый щелчок выберет строку, а второй щелчок отменит выбор строки. Итак, есть два конкретных вопроса, которые у меня есть:

  1. Как преобразовать выделение ячейки в выделение строки?
  2. Как преобразовать несколько вариантов выбора, не удерживая Ctrl?

person Teacher Mik    schedule 15.01.2019    source источник


Ответы (1)


Чтобы выбирать строки вместо элементов, вы должны установить их как поведение выбора в QAbstractItemView::SelectRows, и если вы хотите, чтобы элементы выбирались без нажатия какой-либо клавиши, вы должны установить режим выбора в QAbstractItemView::MultiSelection:

import sys
from PyQt5 import QtGui, QtWidgets

if __name__ == '__main__':
    app = QtWidgets.QApplication(sys.argv)
    model = QtGui.QStandardItemModel(10, 5)
    w = QtWidgets.QTableView()
    w.setSelectionBehavior(QtWidgets.QAbstractItemView.SelectRows)
    w.setSelectionMode(QtWidgets.QAbstractItemView.MultiSelection)
    w.setModel(model)
    w.show()
    sys.exit(app.exec_())
person eyllanesc    schedule 15.01.2019