Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ setHeaderData不工作+;qt_C++_Qt_Qt5_Qtableview_Qsqltablemodel - Fatal编程技术网

C++ setHeaderData不工作+;qt

C++ setHeaderData不工作+;qt,c++,qt,qt5,qtableview,qsqltablemodel,C++,Qt,Qt5,Qtableview,Qsqltablemodel,我想做一个图书馆管理软件。我正在使用Qt和Sqlite3。在我的主窗口构造函数中,我有这段代码 @ellyanesc,在您的建议中添加了以下内容: db = QSqlDatabase :: addDatabase("QSQLITE"); model = new QSqlTableModel(this); //QHeaderView view(Qt::Horizontal, this); fileName = "Unnamed"; if(db.open()) { QSqlQuery q

我想做一个图书馆管理软件。我正在使用Qt和Sqlite3。在我的主窗口构造函数中,我有这段代码

@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);

未显示错误,但标题未显示

首先,您必须指明数据库的位置并打开它,不应使用默认值,因为它是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);
}
QSqlDatabase db=QSqlDatabase::addDatabase(“QSQLITE”);
setDatabaseName(“database.db”);
if(db.open()){
QSqlQuery查询;
if(!query.exec(“如果不存在,则创建表MYDEFAULT(名称字符(100)主键不为NULL,作者字符(100)不为NULL,UID字符(100))”){
qDebug()选择();
model->setHeaderData(0,Qt::Horizontal,tr(“NAME”));
model->setHeaderData(1,Qt::Horizontal,tr(“作者”);
model->setHeaderData(2,Qt::水平,tr(“UID”);
ui->tableView->setModel(模型);
}

首先,您必须指明数据库的位置并打开它,您不应该使用默认值,因为它在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);
}
QSqlDatabase db=QSqlDatabase::addDatabase(“QSQLITE”);
setDatabaseName(“database.db”);
if(db.open()){
QSqlQuery查询;
if(!query.exec(“如果不存在,则创建表MYDEFAULT(名称字符(100)主键不为NULL,作者字符(100)不为NULL,UID字符(100))”){
qDebug()选择();
model->setHeaderData(0,Qt::Horizontal,tr(“NAME”));
model->setHeaderData(1,Qt::Horizontal,tr(“作者”);
model->setHeaderData(2,Qt::水平,tr(“UID”);
ui->tableView->setModel(模型);
}

@eyllansc你能再帮我一次吗?谢谢你在哪里指明了表格?使用:
model->setTable(“你的表格名”);
model->select();
编辑你的问题并将其添加到那里,在评论中放入大量代码是很可怕的,它不可读。现在检查@eyllansc。它仍然不起作用“不起作用”这不是一个问题描述…为什么不?发生了什么?为什么那么糟糕?@eyllanesc你能再帮我一次吗?谢谢你,你在哪里指明了表格?使用:
model->setTable(“你的表格名”);
model->select()
编辑您的问题并将其添加到那里,在注释中添加大量代码是很可怕的,它不可读。请立即检查@eyllanesc。它仍然不起作用“不起作用”不是问题描述…为什么不?发生了什么?为什么那么糟糕?应用程序输出中的错误消失了。但仍然没有标题shown@Hemil将默认值更改为另一个名称,该单词保留在SQL中。应用程序输出中的错误已消失。但在SQL中仍然没有标题shown@Hemil将默认值更改为另一个名称,该单词在SQL中保留