如果当前QTableView的单元格被选中,则发出信号[重复]。

问题描述 投票:0回答:1

我在一个单元格中插入了数据,显示为 QTableView 如果单元格正在被点击,它就会向一个函数发出信号,将数据插入到该单元格中。

 self.tableview.clicked.connect(self.insertdata_onclick)



def insertdata_onclick(self, data):
        x = self.tableview.selectionModel().currentIndex().row()
        y = self.tableview.selectionModel().currentIndex().column()
        self.datamodel.input_data[x][y] = data
        self.datamodel.layoutChanged.emit()
        # cell selected
        # get position of that cell
        # change data of that cell

如果当前单元格被选中,我如何复制这种行为?

qt pyqt5 qtableview
1个回答
0
投票

点击信号与索引一起发出,但不是数据。

void QAbstractItemView::clicked(const QModelIndex &index)

所以,与其说

def insertdata_onclick(self, data):

你应该把它做成这样。

def insertdata_onclick(self, index):
    data_i_want_to_insert = self.get_my_data_somewhere(index.row(), index.column())
    self.datamodel.input_data[index.row()][index.column()] = data_i_want_to_insert 
    self.datamodel.layoutChanged.emit()

如果你点击单元格,它就会被选中,除非在 "无选择 "模式下。你不需要测试 "如果该单元格当前被选中"。

最新问题
© www.soinside.com 2019 - 2024. All rights reserved.