QTableWidget 可以使用 setCellWidget() 方法设置自定义控件。
以下是一个示例代码:
from PyQt5.QtWidgets import QApplication, QTableWidget, QTableWidgetItem, QPushButton, QWidget
from PyQt5.QtCore import Qt
class CustomWidget(QWidget):
def __init__(self, parent=None):
super().__init__(parent)
self.button = QPushButton('Click me', self)
self.button.clicked.connect(self.on_button_clicked)
def on_button_clicked(self):
print('Button clicked')
app = QApplication([])
table_widget = QTableWidget(3, 2)
for row in range(table_widget.rowCount()):
for column in range(table_widget.columnCount()):
if (row + column) % 2 == 0:
table_widget.setItem(row, column, QTableWidgetItem('Text'))
else:
custom_widget = CustomWidget()
table_widget.setCellWidget(row, column, custom_widget)
table_widget.show()
app.exec_()
在这个示例中,我们创建了一个 CustomWidget 类来表示自定义控件。然后,我们使用 setItem() 方法在表格中添加普通单元格,使用 setCellWidget() 方法在表格中添加自定义控件。
在此示例中,我们为每个奇数行和列添加了 CustomWidget 控件,并在每个偶数行和列添加了普通单元格。如果您运行此示例,您将看到每个 CustomWidget 控件都有一个按钮,当您单击该按钮时,它会输出 “Button clicked”。