pyqt QTableView 获取上一次选中的单元格的index
时间: 2023-06-05 18:07:54 浏览: 252
可以使用QTableView的selectedIndexes()函数获取所有选中单元格的index,通过记录上一次的选中单元格的index,在选中单元格变化时进行比较,即可获得上一次选中单元格的index。
相关问题
pyqt 代码实现QTableView 选中单元格的信号槽
可以用QTableView的clicked信号和selectionModel的selectionChanged信号来实现选中单元格的信号槽连接。代码如下:
```python
from PyQt5.QtWidgets import QApplication, QMainWindow, QTableView, QAbstractItemView
from PyQt5.QtCore import pyqtSlot
class MyTableView(QTableView):
def __init__(self, parent=None):
super().__init__(parent)
self.setSelectionBehavior(QAbstractItemView.SelectItems)
self.setSelectionMode(QAbstractItemView.SingleSelection)
self.clicked.connect(self.on_clicked)
self.selectionModel().selectionChanged.connect(self.on_selection_changed)
@pyqtSlot()
def on_clicked(self):
indexes = self.selectedIndexes()
if indexes:
row = indexes[0].row()
column = indexes[0].column()
print("Cell ({}, {}) clicked.".format(row, column))
@pyqtSlot()
def on_selection_changed(self):
indexes = self.selectedIndexes()
if indexes:
row = indexes[0].row()
column = indexes[0].column()
print("Cell ({}, {}) selected.".format(row, column))
if __name__ == '__main__':
app = QApplication([])
window = QMainWindow()
table_view = MyTableView()
window.setCentralWidget(table_view)
window.show()
app.exec_()
```
这段代码创建了一个继承自QTableView的MyTableView类,覆盖了其clicked和selectionModel().selectionChanged信号的槽函数。在on_clicked函数中获取选中的单元格的行和列,然后打印输出;在on_selection_changed函数中获取选中的单元格的行和列,然后打印输出。注意要通过setSelectionBehavior和setSelectionMode函数设置选择模式和选择行为。
pyqt5 获取最后一次光标所在的dataframe单元格
您可以使用以下代码获取最后一次光标所在的dataframe单元格:
```python
import PyQt5.QtGui
import PyQt5.QtWidgets
def get_selected_dataframe_cell():
app = PyQt5.QtWidgets.QApplication([])
clipboard = app.clipboard()
selected_data = clipboard.mimeData().text()
return selected_data
```
该代码首先创建一个PyQt5应用程序对象,然后获取系统剪贴板中的数据,该数据包含最后一个光标所在的单元格信息。最后,该函数返回该单元格的数据。