在PyQt5中,可以通过以下步骤来实现单击按钮时从表中删除复选框:
以下是一个示例代码:
from PyQt5.QtWidgets import QApplication, QMainWindow, QTableView, QPushButton
from PyQt5.QtGui import QStandardItemModel, QStandardItem
from PyQt5.QtCore import Qt
class MainWindow(QMainWindow):
def __init__(self):
super().__init__()
self.model = QStandardItemModel()
self.model.setColumnCount(2)
self.model.setHorizontalHeaderLabels(['Name', 'Selected'])
self.table_view = QTableView(self)
self.table_view.setModel(self.model)
self.button = QPushButton('Delete', self)
self.button.clicked.connect(self.delete_selected_row)
self.setCentralWidget(self.table_view)
self.addToolBar(Qt.BottomToolBarArea, self.button)
self.populate_table()
def populate_table(self):
names = ['John', 'Jane', 'Mike', 'Emily']
for name in names:
item = QStandardItem(name)
item.setCheckable(True)
self.model.appendRow([item, QStandardItem()])
def delete_selected_row(self):
selection_model = self.table_view.selectionModel()
selected_indexes = selection_model.selectedRows()
for index in selected_indexes:
self.model.removeRow(index.row())
if __name__ == '__main__':
app = QApplication([])
window = MainWindow()
window.show()
app.exec_()
在这个示例中,我们创建了一个主窗口,并在其中添加了一个表格视图和一个按钮。表格视图使用QStandardItemModel作为数据模型,并插入了一些带有复选框的数据项。当点击按钮时,会调用delete_selected_row()槽函数来删除选中的行。
这个示例中使用的腾讯云相关产品和产品介绍链接地址与问题无关,因此不提供。
领取专属 10元无门槛券
手把手带您无忧上云