- List item
方法一
使用QTableView的API函数,直接隐藏几列的显示
xSQLiteTableModel = new QSqlTableModel(this);
...
...
ui->xTableView->hideColumn(0);//把第一列和第二列隐藏
ui->xTableView->hideColumn(1);
方法二
继承自QSqlTableModel,重写virtual QString selectStatement() const override;
#ifndef CMACHSQLTABLEMODEL_H
#define CMACHSQLTABLEMODEL_H
#include <QSqlTableModel>
class CMachSqlTableModel : public QSqlTableModel
{
public:
CMachSqlTableModel(QObject *parent = nullptr, QSqlDatabase db = QSqlDatabase());
protected:
virtual QString selectStatement() const override;
};
#endif // CMACHSQLTABLEMODEL_H
**注意:**如果列名称有汉字,可能的编码问题会导致查询不到数据库中的东西
#include "cmachsqltablemodel.h"
#pragma execution_character_set("utf-8")
CMachSqlTableModel::CMachSqlTableModel(QObject *parent, QSqlDatabase db)
:QSqlTableModel(parent,db)
{
}
QString CMachSqlTableModel::selectStatement() const
{
//SELECT 列名称 FROM 表名称 ORDER BY 列名称 选取这几种列名称并按照 列名称排序
return QString("SELECT 名称, 值, 单位, 生效时间 FROM machpara");//如果列名称有汉字,可能的编码问题会导致查询不到数据库中的东西
}