请帮我写一个PyQt6 QTableWidget如果不设置行数,可以使用insertRow方法来添加新行并设置item。
时间: 2023-06-03 10:05:41 浏览: 61
好的,可以通过下面的代码实现:
```python
from PyQt6.QtWidgets import QApplication, QWidget, QTableWidget, QTableWidgetItem, QVBoxLayout
import sys
class MyTable(QWidget):
def __init__(self):
super().__init__()
# 创建一个QTableWidget对象
self.tableWidget = QTableWidget()
# 设置列数
self.tableWidget.setColumnCount(2)
# 创建一个垂直布局,并将QTableWidget添加进去
layout = QVBoxLayout()
layout.addWidget(self.tableWidget)
self.setLayout(layout)
# 添加新行并设置item
self.add_row(["apple", "fruit"])
self.add_row(["potato", "vegetable"])
self.add_row(["bread", "staple food"])
def add_row(self, row):
row_position = self.tableWidget.rowCount()
self.tableWidget.insertRow(row_position)
for i, column in enumerate(row):
item = QTableWidgetItem(column)
self.tableWidget.setItem(row_position, i, item)
if __name__ == '__main__':
app = QApplication(sys.argv)
window = MyTable()
window.show()
sys.exit(app.exec())
```
这个例子创建了一个QTableWidget对象,然后在构造函数中调用add_row方法,来添加新行并设置item。如果不设置行数,则会默认为0行,此时调用insertRow方法时,会自动增加一行。