Python pyqt5 QTableWidget仅在选择整行时删除该行
我正在编写一个分析CSV文件的GUI,我想实现一个功能,在这个功能中,只有选中整行时,才会删除该行。我当前的问题是,当我选择一个单元格并单击backspace时,所选单元格所在的行也将被删除。我如何防止这种情况Python pyqt5 QTableWidget仅在选择整行时删除该行,python,pyqt5,qtablewidget,Python,Pyqt5,Qtablewidget,我正在编写一个分析CSV文件的GUI,我想实现一个功能,在这个功能中,只有选中整行时,才会删除该行。我当前的问题是,当我选择一个单元格并单击backspace时,所选单元格所在的行也将被删除。我如何防止这种情况 from GUI import Ui_MainWindow from PyQt5 import QtCore, QtGui, QtWidgets from PyQt5.Qt import Qt from PyQt5.QtCore import QItemSelectionModel fr
from GUI import Ui_MainWindow
from PyQt5 import QtCore, QtGui, QtWidgets
from PyQt5.Qt import Qt
from PyQt5.QtCore import QItemSelectionModel
from PyQt5.QtWidgets import (QApplication,QMainWindow,QFileDialog,QTableWidget,
QMessageBox,QTableWidgetItem,QHeaderView)
class mainForm(QMainWindow,Ui_MainWindow):
def __init__(self, *args, **kwargs):
QMainWindow.__init__(self, *args, **kwargs)
self.setupUi(self)
self.initUI()
def keyPressEvent(self, event):
if event.key() == Qt.Key_Backspace:
self.removeRow()
def selectedRow(self):
if self.tabWidget.currentIndex() is 0 and self.inLoanTable.selectionModel().hasSelection():
row = self.inLoanTable.selectionModel().selectedIndexes()[0].row()
return int(row)
def removeRow(self):
if self.tabWidget.currentIndex() is 0 and self.inLoanTable.rowCount() > 0:
row = self.selectedRow()
我在代码中确实喜欢这个。它在按下按钮时运行。您可以使用backspace将其绑定
def deleteItem(self):
model_index = self.tableWidget.selectionModel().selectedRows()
index = QtCore.QPersistentModelIndex(model_index)
self.tableWidget.remoweRow(index.row())
如果要删除多行,也可以这样做
def deleteItem(self):
index_list = []
for model_index in self.tableWidget.selectionModel().selectedRows()
index = QtCore.QPersistentModelIndex(model_index)
index_list.append(index)
for index in index_list:
self.tableWidget.remoweRow(index.row())
谢谢,但它给了我一个错误:AttributeError:“内置函数”或“方法”对象没有属性“selectedRows”,很抱歉应该是selectionModel()。selectedRows()像testDRow index=QtCore.QPersistentModelIndex(modelIndex)中的第287行“/Users/yayuni/Desktop/HerbariumGUI/main.py”那样尝试TypeError:参数与任何重载调用不匹配:QPersistentModelIndex():参数太多QPersistentModelIndex(QModelIndex):参数1具有意外的类型“list”QPersistentModelIndex(QPersistentModelIndex):参数1具有意外的“列表”类型,然后在按键事件中,在调用removeRow之前添加更多if,验证是否选择了整行。如何验证是否选择了整行?这是您要完成的调查的一部分。Stackoverflow并不是让社区为你搜索的最佳场所。