В пользовательском интерфейсе у меня есть QTableView
, который выглядит так в самом начале после первого запуска:
Как только пользователь запустит проект и создастновая база данных .db
(скажем, пользователь помещает файл .db на рабочий стол), эта QTableView
выглядит так, что правильное поведение :
Проблема: После того, как я начинаю сохранять изображения и их путь, все заголовки имеют разные имена (1,2,3,4) вместо (path1, path2, image1, image2), как показано ранее, ипропущен столбец id
, как показано ниже, где указано неправильное поведение :
Ниже описан порядок настройки наиболее важных параметров:
mainwindow.h
private:
QString temporaryFolder;
dataInfo *mNewDatabaseImages;
QSqlTableModel *mNewTableImages;
QStandardItemModel *model;
mainwindow.cpp
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
temporaryFolder = "/home/path/toDesktop/folder/a.db";
QFile dbRem(temporaryFolder);
dbRem.remove();
mNewDatabaseImages = new dataInfo(this);
mNewDatabaseImages->initDataBase(temporaryFolder);
mNewDatabaseImages->confDataBase();
mNewTableImages = new QSqlTableModel(this, mNewDatabaseImages->getDatabase());
mNewTableImages->setTable("imageTable");
mNewTableImages->select();
ui->bookMarkTableView->setModel(mNewTableImages);
model = new QStandardItemModel();
ui->bookMarkTableView->setModel(model);
ui->bookMarkTableView->showColumn(true);
}
В дополнение к этому есть две иконкив пользовательском интерфейсе, с помощью которого я открываю существующую базу данных или создаю новую базу данных, как можно видеть ниже:
Эта часть находится также в mainwindow.cpp , а ниже приведен фрагмент кода:
void MainWindow::openDatabase(MainWindow::Opening opening)
{
QString nameDatabase;
if(opening == OPENING) {
nameDatabase = QFileDialog::getOpenFileName(this,
"Open Database", QDir::rootPath(),
"Database (*.db);;Any type (*.*)");
} else {
nameDatabase = QFileDialog::getSaveFileName(this,
"New Database", QDir::rootPath(),
"Database (*.db);;Any type (*.*)");
}
if(nameDatabase.isEmpty()) {
return;
}
if(!mNewDatabaseImages->initDataBase(nameDatabase)) {
QMessageBox::critical(this, "Error", mNewDatabaseImages->getError());
return;
}
if(!mNewDatabaseImages->confDataBase()) {
QMessageBox::critical(this, "Error", mNewDatabaseImages->getError());
return;
}
delete mNewTableImages;
// Work with the database file created
mNewTableImages = new QSqlTableModel(this, mNewDatabaseImages->getDatabase());
mNewTableImages->setTable("imageTable");
mNewTableImages->select();
ui->bookMarkTableView->setModel(mNewTableImages);
ui->bookMarkTableView->showColumn(true);
}
База данных, которую я использую: QSQLITE
и способSQL
здесь написано здесь если есть необходимость увидеть фрагмент этого тоже.
Почему QTableView
не показывает правильные заголовки и столбцы?
Спасибо за указание в правильном направлении.