代码截取我的开发代码,使用前用一个pyqt类做个页面把代码写进去就好了。
简单介绍:1、首先使用table_widget.setContextMenuPolicy(Qt.CustomContextMenu)设置一下使用自定义右键菜单。2、使用self.table_widget.customContextMenuRequested.connect(self.showContextMenu)
设置点击右键时触发的事件。
重点: 使用menu.exec_(self.table_widget.mapToGlobal(pos))设置右键点击事件后,删除按钮出现在哪,定位你点击的地方。
self.table_widget = QtWidgets.QTableWidget()
self.table_widget.setColumnCount(2)
self.table_widget.setRowCount(len(all_reply)) # 设置表格行数
#设置列的宽度
self.table_widget.setColumnWidth(0,300)
self.table_widget.setColumnWidth(1, 300)
self.ui.scrollArea.setWidget(self.table_widget)
self.table_widget.setContextMenuPolicy(Qt.CustomContextMenu)
self.table_widget.customContextMenuRequested.connect(self.showContextMenu)
def showContextMenu(self, pos):
menu = QtWidgets.QMenu()
# 添加删除动作
delete_action = menu.addAction("删除选中行")
delete_action.triggered.connect(self.deleteRow)
# 显示右键菜单
menu.exec_(self.table_widget.mapToGlobal(pos))
def deleteRow(self):
current_row = self.table_widget.currentRow()
if current_row >= 0:
# 获取要删除的行的数据
problem_item = self.table_widget.item(current_row, 0)
problem = problem_item.text()
self.table_widget.removeRow(current_row)