ZBLOG

Qt qtablewidget动态添加按钮并实现对应的点击事件

以下是实现步骤:

  1. 在QTableWidget中添加一个新的列,用于放置按钮。

  2. 在每个单元格中添加QPushButton控件,并设置其父对象为QTableWidget。

  3. 为每个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参数来确定是哪个按钮被点击了,并执行相应的操作。这里只是简单地输出一条消息,但你可以根据需要更改它以实现所需的操作。

本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
转载请注明出处:https://golang.0voice.com/?id=6738

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
游客 游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~

联系我们

在线咨询: 点击这里给我发消息

微信号:3007537140

上班时间: 10:30-22:30

关注我们
x

注册

已经有帐号?