前提・実現したいこと
TableViewに表示されているデータのセルをクリックすると「セルのみ」選択されます。
実現したいことは、↓のようにセルをクリックすると、該当の行全体が選択状態にしたいです。
import sys from PyQt5.QtCore import * from PyQt5.QtWidgets import * class MyTableModel(QAbstractTableModel): def __init__(self, list, headers = [], parent = None): QAbstractTableModel.__init__(self, parent) self.list = list self.headers = headers def rowCount(self, parent): return len(self.list) def columnCount(self, parent): return len(self.list[0]) def flags(self, index): return Qt.ItemIsEditable | Qt.ItemIsEnabled | Qt.ItemIsSelectable def data(self, index, role): if role == Qt.EditRole: row = index.row() column = index.column() return self.list[row][column] if role == Qt.DisplayRole: row = index.row() column = index.column() value = self.list[row][column] return value if role == Qt.DisplayRole: row = index.row() column = index.column() value = self.list[row][column] return value def setData(self, index, value, role = Qt.EditRole): if role == Qt.EditRole: row = index.row() column = index.column() self.list[row][column] = value self.dataChanged.emit(index, index) return True return False def headerData(self, section, orientation, role): if role == Qt.DisplayRole: if orientation == Qt.Horizontal: if section < len(self.headers): return self.headers[section] else: return "not implemented" else: return section class MainWindow(QWidget): def __init__(self, parent=None): super(MainWindow, self).__init__(parent) self.setGeometry(300, 50, 300, 250) self.setWindowTitle('MainWindow') self.tableView = QTableView(self) self.tableView.setObjectName(u"tableView") self.tableView.setGeometry(10, 10, 280, 180) self.pushButton = QPushButton(self) self.pushButton.setObjectName(u"pushButton") self.pushButton.setGeometry(220, 200, 60, 30) self.pushButton.setText(QCoreApplication.translate("pushButton", u"ボタン", None)) # ヘッダーの設定 header = ["データ1" , "データ2" , "データ3" , "データ4"] # 挿入するデータ row = [[10 , 20 , 30 , 40],[100,200,300,400]] self.model = MyTableModel(row, header) self.tableView.setModel(self.model) self.selectRow = self.model.rowCount(QModelIndex()) if __name__ == '__main__': app = QApplication(sys.argv) main_window = MainWindow() main_window.show() sys.exit(app.exec_())

バッドをするには、ログインかつ
こちらの条件を満たす必要があります。