qsqlquerymodel添加一列checkbox选择框
时间: 2023-12-02 13:06:29 浏览: 170
QCheckBox(复选框)
要在 QSQLQueryModel 中添加一个包含 checkbox 的列,您需要使用 QTableView 和 QStandardItemModel 代替 QSQLQueryModel。以下是一个简单的示例:
```python
from PyQt5.QtWidgets import QApplication, QTableView, QStandardItemModel, QHeaderView
from PyQt5.QtCore import Qt
# 创建 QStandardItemModel
model = QStandardItemModel()
# 添加列
model.setColumnCount(2)
model.setHeaderData(0, Qt.Horizontal, "Name")
model.setHeaderData(1, Qt.Horizontal, "Selected")
# 添加行
for i in range(5):
item = QStandardItem("Item {}".format(i))
item.setCheckable(True)
model.setItem(i, 0, item)
# 创建 QTableView
view = QTableView()
view.setModel(model)
# 调整列宽
view.horizontalHeader().setSectionResizeMode(0, QHeaderView.Stretch)
view.horizontalHeader().setSectionResizeMode(1, QHeaderView.ResizeToContents)
# 显示窗口
app = QApplication([])
view.show()
app.exec_()
```
在这个示例中,我们创建了一个 QStandardItemModel,并添加了两列:一个包含名称,另一个包含 checkbox。我们使用 setCheckable() 方法将每个项目设置为可选中。
然后,我们创建了一个 QTableView,并将 QStandardItemModel 设置为其模型。我们还调整了列宽,以便第一列填充剩余空间,第二列根据内容自动调整大小。
最后,我们显示了 QTableView 并运行了应用程序。
阅读全文