2 回答

TA貢獻(xiàn)1799條經(jīng)驗(yàn) 獲得超9個(gè)贊
信號(hào)的等價(jià)物cellEntered
是entered
信號(hào):
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貢獻(xiàn)1829條經(jīng)驗(yàn) 獲得超4個(gè)贊
由于問題的第二部分沒有得到解答,我想解決“如何抓住單元格或物品離開”的問題。
因?yàn)闆]有cellLeft或ItemLeft事件,所以必須使用周圍單元格的cellEntered事件。要知道單元格何時(shí)離開,我們存儲(chǔ)每個(gè)輸入的行和列,并決定何時(shí)發(fā)生離開事件。
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
添加回答
舉報(bào)