setHeaderData 不工作 + qt
setHeaderData not working + qt
我正在尝试做一个图书馆管理软件。我正在使用 Qt 和 Sqlite3。在我的主要 window 构造函数中,我有这段代码
@ellyanesc,根据你的推荐添加了这个:
db = QSqlDatabase :: addDatabase("QSQLITE");
model = new QSqlTableModel(this);
//QHeaderView view(Qt::Horizontal, this);
fileName = "Unnamed";
if(db.open())
{
QSqlQuery query(db);
query.exec("CREATE TABLE DEFAULT (NAME CHAR(100) PRIMARY KEY NOT NULL, AUTHOR CHAR(100) NOT NULL, UID CHAR(100)) ");
db.setDatabaseName("/home/hemil/Documents/libre coupe.db");
model->setTable("DEFAULT");
model->select();
model->setHeaderData(0, Qt::Horizontal, tr("NAME") );
model->setHeaderData(1, Qt::Horizontal, tr("AUTHOR") );
model->setHeaderData(2, Qt::Horizontal, tr("UID") );
}
ui->tableView->setModel(model);
未显示错误,但 header 未显示
首先你必须指出你的数据库所在的位置并打开它,你不应该使用 DEFAULT 因为它是 SQL 中的保留字,将它更改为另一个名称:
QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE");
db.setDatabaseName("database.db");
if(db.open()){
QSqlQuery query;
if(!query.exec("CREATE TABLE MYDEFAULT IF NOT EXISTS (NAME CHAR(100) PRIMARY KEY NOT NULL, AUTHOR CHAR(100) NOT NULL, UID CHAR(100)) ")){
qDebug()<<query.lastError().text();
}
model = new QSqlTableModel(this);
model->setTable("MyDEFAULT");
model->select();
model->setHeaderData(0, Qt::Horizontal, tr("NAME") );
model->setHeaderData(1, Qt::Horizontal, tr("AUTHOR") );
model->setHeaderData(2, Qt::Horizontal, tr("UID") );
ui->tableView->setModel(model);
}
我正在尝试做一个图书馆管理软件。我正在使用 Qt 和 Sqlite3。在我的主要 window 构造函数中,我有这段代码
@ellyanesc,根据你的推荐添加了这个:
db = QSqlDatabase :: addDatabase("QSQLITE");
model = new QSqlTableModel(this);
//QHeaderView view(Qt::Horizontal, this);
fileName = "Unnamed";
if(db.open())
{
QSqlQuery query(db);
query.exec("CREATE TABLE DEFAULT (NAME CHAR(100) PRIMARY KEY NOT NULL, AUTHOR CHAR(100) NOT NULL, UID CHAR(100)) ");
db.setDatabaseName("/home/hemil/Documents/libre coupe.db");
model->setTable("DEFAULT");
model->select();
model->setHeaderData(0, Qt::Horizontal, tr("NAME") );
model->setHeaderData(1, Qt::Horizontal, tr("AUTHOR") );
model->setHeaderData(2, Qt::Horizontal, tr("UID") );
}
ui->tableView->setModel(model);
未显示错误,但 header 未显示
首先你必须指出你的数据库所在的位置并打开它,你不应该使用 DEFAULT 因为它是 SQL 中的保留字,将它更改为另一个名称:
QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE");
db.setDatabaseName("database.db");
if(db.open()){
QSqlQuery query;
if(!query.exec("CREATE TABLE MYDEFAULT IF NOT EXISTS (NAME CHAR(100) PRIMARY KEY NOT NULL, AUTHOR CHAR(100) NOT NULL, UID CHAR(100)) ")){
qDebug()<<query.lastError().text();
}
model = new QSqlTableModel(this);
model->setTable("MyDEFAULT");
model->select();
model->setHeaderData(0, Qt::Horizontal, tr("NAME") );
model->setHeaderData(1, Qt::Horizontal, tr("AUTHOR") );
model->setHeaderData(2, Qt::Horizontal, tr("UID") );
ui->tableView->setModel(model);
}