pyqt5表格中添加按钮
时间: 2023-09-08 20:14:56 浏览: 146
pyqt5 实现 主窗口中动态添加控件
在PyQt5中,可以通过在表格中添加按钮来实现特定的交互功能。下面是一个简单的示例,可以在表格中添加按钮并为其添加点击事件:
```python
from PyQt5.QtWidgets import QApplication, QMainWindow, QTableWidget, QTableWidgetItem, QPushButton
from PyQt5.QtCore import Qt
class MainWindow(QMainWindow):
def __init__(self):
super().__init__()
self.table = QTableWidget()
self.table.setColumnCount(3)
self.table.setRowCount(2)
for i in range(self.table.rowCount()):
for j in range(self.table.columnCount()-1):
self.table.setItem(i, j, QTableWidgetItem("Cell {0}-{1}".format(i, j)))
for row in range(self.table.rowCount()):
button = QPushButton("Button {0}".format(row))
button.setProperty("row", row)
button.clicked.connect(self.handleButtonClicked)
self.table.setCellWidget(row, self.table.columnCount()-1, button)
self.setCentralWidget(self.table)
def handleButtonClicked(self):
button = self.sender()
row = button.property("row")
print("Button {0} clicked in row {1}".format(button.text(), row))
if __name__ == "__main__":
app = QApplication([])
window = MainWindow()
window.show()
app.exec_()
```
在这个示例中,我们创建了一个包含3列和2行的表格,并在前两列中添加了文本单元格。我们然后遍历表格的每一行,并为每一行添加一个按钮。我们使用`setProperty`方法为每个按钮存储一个`row`属性,以便在按钮被点击时可以轻松地获取行号。最后,我们将按钮添加到表格中的第三列,并连接每个按钮的`clicked`信号到我们的`handleButtonClicked`方法上。
`handleButtonClicked`方法获取被点击的按钮并从中获取行号。通过这种方式,您可以轻松地在表格中实现各种交互功能。
阅读全文