pyqt5的tablewidget中加单选框
时间: 2023-12-15 19:06:17 浏览: 141
可以通过在TableWidget中添加Widget来实现在每一行中添加单选框。具体步骤如下:
1.创建TableWidget并设置行数和列数。
2.在每一行中添加单选框,可以使用QRadioButton控件。
3.将单选框添加到TableWidget中,可以使用setCellWidget()方法。
4.获取选中的单选框,可以使用findChildren()方法。
下面是一个示例代码,演示如何在TableWidget中添加单选框:
```python
from PyQt5.QtWidgets import QApplication, QTableWidget, QTableWidgetItem, QRadioButton, QHBoxLayout, QWidget
import sys
class TableWidget(QWidget):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
self.setGeometry(100, 100, 500, 300)
self.setWindowTitle('TableWidget with Radio Button')
# 创建TableWidget并设置行数和列数
self.tableWidget = QTableWidget()
self.tableWidget.setRowCount(3)
self.tableWidget.setColumnCount(2)
# 在每一行中添加单选框
for i in range(3):
radio = QRadioButton()
hBox = QHBoxLayout()
hBox.addWidget(radio)
hBox.setAlignment(radio, QtCore.Qt.AlignCenter)
widget = QWidget()
widget.setLayout(hBox)
self.tableWidget.setCellWidget(i, 0, widget)
item = QTableWidgetItem('Item %s' % i)
self.tableWidget.setItem(i, 1, item)
# 获取选中的单选框
for i in range(self.tableWidget.rowCount()):
widget = self.tableWidget.cellWidget(i, 0)
radio = widget.findChildren(QRadioButton)[0]
print(radio.isChecked())
self.show()
if __name__ == '__main__':
app = QApplication(sys.argv)
ex = TableWidget()
sys.exit(app.exec_())
```
阅读全文