Widget::~Widget() { } void Widget::initTableView() { ui->tableView->setSelectionBehavior(QAbstractItemView::SelectRows); ui->tableView->verticalHeader()->setHidden(true); QSqlTableModel *pModel = new QSqlTableModel(this, DatabaseOperation::getInstance()->GetDb()); pModel->setTable("goods"); pModel->setEditStrategy(QSqlTableModel::OnManualSubmit);//手动提交 pModel->select(); pModel->setHeaderData(0, Qt::Horizontal, "id"); pModel->setHeaderData(1, Qt::Horizontal, "商品"); pModel->setHeaderData(2, Qt::Horizontal, "类别"); pModel->setHeaderData(3, Qt::Horizontal, "价格"); pModel->setHeaderData(4, Qt::Horizontal, "单位"); pModel->setHeaderData(5, Qt::Horizontal, "剩余"); // pModel->sort(0, Qt::DescendingOrder); // 第0列降序排序 ui->tableView->setModel(pModel);//界面设置数据 }
时间: 2023-06-24 22:08:38 浏览: 152
这是一个 C++ Qt 框架下的代码段,用于初始化一个 TableView 控件,显示数据库中的商品信息。该代码的作用如下:
1. 通过 `ui->tableView` 获取 TableView 控件,并设置选择模式为选择整行。
2. 隐藏 TableView 的垂直标头。
3. 创建一个 QSqlTableModel 对象,并设置其关联的表为 "goods",同时设置编辑策略为手动提交。
4. 通过 `select()` 方法执行查询,并使用 `setHeaderData()` 方法设置 TableView 的列名。
5. 将 QSqlTableModel 对象设置为 TableView 的数据模型,从而将查询结果显示在 TableView 控件上。
相关问题
ui->tableView->verticalHeader()->setDefaultAlignment(Qt::AlignCenter); ui->tableView->verticalHeader()->setVisible(false); ui->tableView->setSelectionMode(QAbstractItemView::SingleSelection); ui->tableView->setSelectionBehavior(QAbstractItemView::SelectRows); ui->tableView->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOn); ui->tableView->horizontalHeader()->setStretchLastSection(true); ui->tableView->setAlternatingRowColors(true); ui->tableView->setShowGrid(true); ui->tableView->setGridStyle(Qt::SolidLine);
这段代码是一系列设置表格视图(`tableView`)的属性和样式的代码。
1. `ui->tableView->verticalHeader()->setDefaultAlignment(Qt::AlignCenter);`:设置垂直表头单元格中的文本居中对齐。
2. `ui->tableView->verticalHeader()->setVisible(false);`:隐藏垂直表头。
3. `ui->tableView->setSelectionMode(QAbstractItemView::SingleSelection);`:设置选择模式为单选。
4. `ui->tableView->setSelectionBehavior(QAbstractItemView::SelectRows);`:设置选择行为为选中整行。
5. `ui->tableView->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOn);`:设置水平滚动条始终可见。
6. `ui->tableView->horizontalHeader()->setStretchLastSection(true);`:设置水平表头的最后一列自动拉伸以填充剩余空间。
7. `ui->tableView->setAlternatingRowColors(true);`:设置交替行颜色,使表格视图的行具有交替的背景颜色。
8. `ui->tableView->setShowGrid(true);`:显示表格网格线。
9. `ui->tableView->setGridStyle(Qt::SolidLine);`:设置表格网格线的样式为实线。
这些设置可以根据需求来自定义表格视图的外观和交互方式,提供更好的用户体验。
ui->tableView->setModel(model); ui->tableView->setEditTriggers(QAbstractItemView::NoEditTriggers); ui->tableView->verticalHeader()->setVisible(false); ui->tableView->setColumnWidth(6,110); ui->tableView->setColumnWidth(8,180); ui->tableView->setColumnWidth(9,110); ui->tableView->setColumnWidth(10,110);
这段代码是用来设置一个QTableView的显示效果的,具体解释如下:
- `ui->tableView->setModel(model);` 设置QTableView的数据模型为model。
- `ui->tableView->setEditTriggers(QAbstractItemView::NoEditTriggers);` 设置QTableView不可编辑。
- `ui->tableView->verticalHeader()->setVisible(false);` 隐藏QTableView的垂直表头。
- `ui->tableView->setColumnWidth(6,110);` 设置QTableView第6列的宽度为110个像素。
- `ui->tableView->setColumnWidth(8,180);` 设置QTableView第8列的宽度为180个像素。
- `ui->tableView->setColumnWidth(9,110);` 设置QTableView第9列的宽度为110个像素。
- `ui->tableView->setColumnWidth(10,110);` 设置QTableView第10列的宽度为110个像素。
这段代码的作用是使得QTableView显示出来的效果更加美观,并且限制了用户对表格的编辑操作。
阅读全文