pyqt tableWidget 插入按钮
时间: 2025-05-25 17:53:12 浏览: 15
### 在 PyQt 的 `QTableWidget` 中插入按钮
为了在 `QTableWidget` 中添加按钮控件,可以创建一个 `QPushButton` 并将其设置到指定的单元格中。下面展示了具体方法:
#### 创建按钮并关联槽函数
首先实例化 `QPushButton` 对象,并通过 `.clicked.connect()` 方法连接点击事件至处理逻辑。
```python
qButton = QPushButton('编辑值')
qButton.clicked.connect(lambda: qb_printf(1))
```
这里定义了一个名为 `'编辑值'` 的按钮,并将它的点击信号绑定到了 `qb_printf` 函数上[^3]。
#### 将按钮放置于表格内特定位置
利用 `setCellWidget(row, column, widget)` 可把自定义的小部件放入表单中的某行列处。
```python
self.tableWidget.setCellWidget(rows, column, qButton)
```
此操作会使得给定行号和列号对应的单元格显示之前配置好的按钮对象。
#### 完整示例代码
以下是完整的例子来展示如何在一个简单的窗口应用里完成上述功能:
```python
from PyQt5.QtWidgets import QApplication, QMainWindow, QTableWidget, QTableWidgetItem, QPushButton
import sys
class MainWindow(QMainWindow):
def __init__(rows=5, columns=2):
super().__init__()
# 初始化表格组件
table_widget = QTableWidget()
table_widget.setRowCount(rows)
table_widget.setColumnCount(columns)
for row in range(rows):
btn_edit = QPushButton('编辑值', parent=self)
btn_edit.clicked.connect(lambda checked, r=row: print(f"Row {r} clicked"))
table_widget.setCellWidget(row, 0, btn_edit)
central_widget = QWidget(self)
layout = QVBoxLayout(central_widget)
layout.addWidget(table_widget)
setCentralWidget(central_widget)
if __name__ == '__main__':
app = QApplication(sys.argv)
main_window = MainWindow()
main_window.show()
sys.exit(app.exec_())
```
这段程序建立了一张具有五行为两列的表格,在每一行的第一列都加入了一个带有文字 "编辑值" 的按钮;当任意一行上的按钮被按下时,则会在控制台打印出行索引信息。
阅读全文
相关推荐


















