2 回答
TA贡献1799条经验 获得超9个赞
信号的等价物cellEntered
是entered
信号:
from PyQt5 import QtGui, QtWidgets
def main():
app = QtWidgets.QApplication([])
model = QtGui.QStandardItemModel(5, 5)
view = QtWidgets.QTableView()
view.setModel(model)
view.setMouseTracking(True)
def on_entered(index):
print(index.row(), index.column())
view.entered.connect(on_entered)
view.show()
app.exec_()
if __name__ == "__main__":
main()
TA贡献1829条经验 获得超4个赞
由于问题的第二部分没有得到解答,我想解决“如何抓住单元格或物品离开”的问题。
因为没有cellLeft或ItemLeft事件,所以必须使用周围单元格的cellEntered事件。要知道单元格何时离开,我们存储每个输入的行和列,并决定何时发生离开事件。
class LeaveEvent(QtWidgets.QMainWindow):
def __init__(self):
self.table.cellEntered.connect(self.on_table_cell_entered)
self.prev_idxs = -1, -1
def on_table_cell_entered(self, row, column):
if (row, column) != self.prev_idxs:
print(f'previous cell left: {self.prev_idxs}')
self.prev_idxs = row, column
添加回答
举报