void MdiWidget::createMdi(){ isUntitled = true; setWindowTitle(trUtf8("Table1")); showMaximized(); QSqlDatabase db = QSqlDatabase::database("mydb"); QSqlTableModel *model = new QSqlTableModel(0,db); model->setTable("books"); model->setEditStrategy(QSqlTableModel::OnFieldChange); model->select(); model->removeColumn(0); // don't show the ID model->setHeaderData(0, Qt::Horizontal, QObject::trUtf8("Строка")); model->setHeaderData(1, Qt::Horizontal, QObject::trUtf8("Строка2")); model->setHeaderData(2, Qt::Horizontal, QObject::trUtf8("Дата")); QTableView *view = new QTableView(); view->setModel(model); view->setAlternatingRowColors(true); // Подсветка строк разными цветами view->resizeRowsToContents(); view->resizeColumnsToContents(); view->setSortingEnabled(true); // Сортировка таблицы view->sortByColumn(1,Qt::AscendingOrder); // Порядок сортировки по умолчанию // view->show(); QVBoxLayout *layout = new QVBoxLayout; layout->addWidget(view); layout->setContentsMargins(0,0,0,0); this->setLayout(layout);}
QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE"); db.setDatabaseName("mydatabase.sqlite"); bool b = db.open(); qDebug() << db.lastError().text(); QSqlTableModel *model = new QSqlTableModel(0,db); model->setTable("temp");// model->setEditStrategy(QSqlTableModel::OnFieldChange); model->select();// закомменчено из-за того, что у меня кодировка файла windows 1251 и нет нужды скрывать первую колонку/* model->removeColumn(0); // don't show the ID model->setHeaderData(0, Qt::Horizontal, QObject::trUtf8("Строка")); model->setHeaderData(1, Qt::Horizontal, QObject::trUtf8("Строка2")); model->setHeaderData(2, Qt::Horizontal, QObject::trUtf8("Дата"));*/ // тут я использую выложенную на форму в дизайнере таблицу QTableView *view = ui.tableView; view->setModel(model); view->setAlternatingRowColors(true); // Подсветка строк разными цветами view->resizeRowsToContents(); view->resizeColumnsToContents(); view->setSortingEnabled(true); // Сортировка таблицы view->sortByColumn(1,Qt::AscendingOrder); // Порядок сортировки по умолчанию
// Функция коннектор к базе данныхbool Connect_database::createConnection() { int database_port; bool database_ssl; QString conf_file,database_host,database_name,database_user,database_password,database_ssl_string; conf_file="ini\\settings.conf"; // Подключаемся к базе данных спараметрами из файла конфигурации QSettings * settings = new QSettings(conf_file,QSettings::IniFormat); database_host = settings->value("database/host").toString(); database_port = settings->value("database/port").toInt(); database_name = settings->value("database/namedatabase").toString(); database_user = settings->value("database/user").toString(); database_password = settings->value("database/password").toString(); database_ssl = settings->value("database/ssl").toBool(); if (database_ssl == false) database_ssl_string="requiressl=0"; if (database_ssl == true) database_ssl_string="requiressl=1"; QSqlDatabase db = QSqlDatabase::addDatabase("QPSQL","mydb"); db.setHostName(database_host); db.setPort(database_port); db.setDatabaseName(database_name); db.setUserName(database_user); db.setPassword(database_password); db.setConnectOptions(database_ssl_string); // Проверяем доступ к базе данных, если нет - выдаем ошибку пользователю и в консоль дебагера if (!db.open()){ qDebug() << QObject::tr("Не возможно подключится к базе данных") << db.lastError().text(); QMessageBox::critical(0,QObject::tr("Ошибка подключения к базе данных"), QObject::tr("Проверте настройки подключения в файле ini\\settings.conf"), db.lastError().text()); return false; } return true;}
MainWindow::MainWindow (QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow){ ui->setupUi(this); mdiArea = new QMdiArea; mdiArea->setHorizontalScrollBarPolicy(Qt::ScrollBarAsNeeded); mdiArea->setVerticalScrollBarPolicy(Qt::ScrollBarAsNeeded); setCentralWidget(mdiArea); createStatusBar(); Connect_database *connect = new Connect_database; if (!connect->loockconfig()) return; if (connect->createConnection() != true) return;}
model->removeColumn(0); // don't show the ID model->setHeaderData(0, Qt::Horizontal, QObject::trUtf8("Строка")); model->setHeaderData(1, Qt::Horizontal, QObject::trUtf8("Строка2")); model->setHeaderData(2, Qt::Horizontal, QObject::trUtf8("Дата"));
// model->removeColumn(0); // don't show the ID model->setHeaderData(1, Qt::Horizontal, QObject::trUtf8("Строка")); model->setHeaderData(2, Qt::Horizontal, QObject::trUtf8("Строка2")); model->setHeaderData(3, Qt::Horizontal, QObject::trUtf8("Дата"));
QTableView *view = new QTableView(); view->setModel(model); view->setColumnHidden(0,true); .......