以下是实现步骤:
在QTableWidget中添加一个新的列,用于放置按钮。
在每个单元格中添加QPushButton控件,并设置其父对象为QTableWidget。
为每个QPushButton控件连接点击事件,以便在用户单击该按钮时执行所需的操作。
下面是示例代码:
from PyQt5.QtWidgets import QApplication, QMainWindow, QTableWidget, QTableWidgetItem, QPushButton
class MainWindow(QMainWindow):
def __init__(self):
super().__init__()
# 创建表格视图
self.table = QTableWidget()
self.setCentralWidget(self.table)
# 设置表头和行数列数
self.table.setColumnCount(2)
self.table.setHorizontalHeaderLabels(['Name', 'Action'])
self.table.setRowCount(3)
# 在每个单元格中添加QPushButton控件
for row in range(self.table.rowCount()):
name_item = QTableWidgetItem('Item {}'.format(row))
button_item = QPushButton('Button {}'.format(row))
# 将QPushButton控件作为单元格的小部件添加到表格中
self.table.setItem(row, 0, name_item)
self.table.setCellWidget(row, 1, button_item)
# 连接QPushButton控件的clicked信号到相应的槽函数上
button_item.clicked.connect(lambda _, r=row: self.buttonClicked(r))
def buttonClicked(self, row):
print('Button {} clicked.'.format(row))
if __name__ == '__main__':
app = QApplication([])
window = MainWindow()
window.show()
app.exec_()
在这个示例代码中,我们创建了一个简单的QMainWindow应用程序,其中包含一个带有两列的QTableWidget控件。第一列显示项目名称,第二列显示与每个项目相关联的按钮。
在循环中,我们使用QTableWidgetItem添加了三个示例项目,并为每个单元格创建了一个QPushButton控件。我们将该QPushButton控件作为单元格的小部件添加到表格中,并连接clicked信号到buttonClicked槽函数上。
在buttonClicked函数中,我们使用传递给它的row参数来确定是哪个按钮被点击了,并执行相应的操作。这里只是简单地输出一条消息,但你可以根据需要更改它以实现所需的操作。