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
添加回答
舉報