#ifndef TABLEVIEW_H
#define TABLEVIEW_H
#include <QtGui>
#include <QWidget>
#include <QTableView>
#include <QStandardItemModel>
#include <QStandardItem>
#include <QString>
#include <QVector>
#include <QtSql/QSqlDatabase>
#include <QtSql/QSqlError>
#include <QtSql/QSqlQuery>
#include <QtSql/QSQLiteDriver>
#include <QMessageBox>
#include <QDialog>
#include "dialog.h"
{
Q_OBJECT
public:
private:
int nrow, ncol;
QVector<QString> table;
int db_connect();
void btnApply_clicked();
int a;
private slots:
void dial();
};
#endif // TABLEVIEW_H
#ifndef TABLEVIEW_H
#define TABLEVIEW_H
#include <QtGui>
#include <QWidget>
#include <QTableView>
#include <QStandardItemModel>
#include <QStandardItem>
#include <QString>
#include <QVector>
#include <QtSql/QSqlDatabase>
#include <QtSql/QSqlError>
#include <QtSql/QSqlQuery>
#include <QtSql/QSQLiteDriver>
#include <QMessageBox>
#include <QDialog>
#include "dialog.h"
class tableView : public QWidget
{
Q_OBJECT
public:
tableView(QWidget *parent = 0);
void db_add(QString atr1, QString atr2);
QStandardItemModel *model;
private:
QString sstr;
QTableView *tblv;
QLabel *label1, *label2;
QLineEdit *lineeRow, *lineeCol;
QPushButton *btnApply;
int nrow, ncol;
QVector<QString> table;
int db_connect();
void btnApply_clicked();
QString asda;
QSqlDatabase db;
int a;
QStandardItem *item;
private slots:
void dial();
};
#endif // TABLEVIEW_H
To copy to clipboard, switch view to plain text mode
#include "tableview.h"
#include <QDebug>
tableView
::tableView(QWidget *parent
){
//create layout
//create QTableView
//setting layout
mainLayout->addLayout(horLayout1);
mainLayout->addLayout(horLayout2);
mainLayout->addWidget(btnApply);
mainLayout->addWidget(tblv);
setLayout(mainLayout);
connect(btnApply, SIGNAL(clicked()), this, SLOT(dial()));
btnApply_clicked();
}
void tableView::dial()
{
Dialog dial;
dial.show();
dial.exec();
}
int tableView::db_connect()
{
if(!db.isOpen())
{
db.setDatabaseName("./baza.db");
if (!db.open())
{
QMessageBox::critical(0, qApp
->tr
("Nie udało się nawiązać połączenia z bazą danych!"),
qApp
->tr
("Naciśnij Cancel aby zakończyć."),
QMessageBox::Cancel);
}
return 1;
}
return 0;
}
{
asda
= QString("insert into person values(null, '");
asda += atr1;
asda += "', '";
asda += atr2;
asda += "')";
qDebug() << asda;
query.exec(asda);
if(query.lastError().isValid())
qDebug() << query.lastError();
qDebug() << "1";
qDebug() << "2";
model->setItem(a, 0, item);
qDebug() << "3";
qDebug() << "4";
model->setItem(a, 1, item);
qDebug() << "5";
qDebug() << "6";
model->setItem(a, 2, item);
}
void tableView::btnApply_clicked()
{
if(db_connect()==1)
{
//get number of input row and column
nrow = 2;
ncol = 3;
//create model
//create QTableview Horizontal Header
// model->setHorizontalHeaderItem( r, new QStandardItem( QString("Column_ %0" ).arg(r+1)) );
a = 0;
query.exec("SELECT * from person");
while(query.next())
{
for(int x=0; x<3; x++)
{
sstr = query.value(x).toString();
model->setItem(a, x, item);
}
a++;
}
//set model
tblv->setModel(model);
tblv->resizeRowsToContents();
tblv->setFixedSize(800,600);
tblv->setColumnWidth(2,350);
tblv->setColumnWidth(1,350);
tblv->setColumnWidth(0,50);
tblv->scrollToBottom();
}
}
#include "tableview.h"
#include <QDebug>
tableView::tableView(QWidget *parent)
: QWidget(parent)
{
//create layout
QVBoxLayout *mainLayout = new QVBoxLayout();
QHBoxLayout *horLayout1 = new QHBoxLayout;
QHBoxLayout *horLayout2 = new QHBoxLayout;
btnApply = new QPushButton(tr("Apply"));
//create QTableView
tblv = new QTableView();
tblv->setSelectionBehavior(QAbstractItemView::SelectItems );
tblv->setSelectionMode( QAbstractItemView::ExtendedSelection );
//setting layout
mainLayout->addLayout(horLayout1);
mainLayout->addLayout(horLayout2);
mainLayout->addWidget(btnApply);
mainLayout->addWidget(tblv);
setLayout(mainLayout);
connect(btnApply, SIGNAL(clicked()), this, SLOT(dial()));
btnApply_clicked();
}
void tableView::dial()
{
Dialog dial;
dial.show();
dial.exec();
}
int tableView::db_connect()
{
if(!db.isOpen())
{
db = QSqlDatabase::addDatabase("QSQLITE");
db.setDatabaseName("./baza.db");
if (!db.open())
{
QMessageBox::critical(0, qApp->tr("Nie udało się nawiązać połączenia z bazą danych!"),
qApp->tr("Naciśnij Cancel aby zakończyć."), QMessageBox::Cancel);
}
return 1;
}
return 0;
}
void tableView::db_add(QString atr1, QString atr2)
{
QSqlQuery query;
QString asda;
asda = QString("insert into person values(null, '");
asda += atr1;
asda += "', '";
asda += atr2;
asda += "')";
qDebug() << asda;
query.exec(asda);
if(query.lastError().isValid())
qDebug() << query.lastError();
qDebug() << "1";
item = new QStandardItem(query.lastInsertId().toString());
qDebug() << "2";
model->setItem(a, 0, item);
qDebug() << "3";
item = new QStandardItem(atr1);
qDebug() << "4";
model->setItem(a, 1, item);
qDebug() << "5";
item = new QStandardItem(atr2);
qDebug() << "6";
model->setItem(a, 2, item);
}
void tableView::btnApply_clicked()
{
if(db_connect()==1)
{
//get number of input row and column
nrow = 2;
ncol = 3;
//create model
model = new QStandardItemModel( nrow, ncol, this );
//create QTableview Horizontal Header
// model->setHorizontalHeaderItem( r, new QStandardItem( QString("Column_ %0" ).arg(r+1)) );
model->setHorizontalHeaderItem(0, new QStandardItem(QString("Lp.")));
model->setHorizontalHeaderItem(1, new QStandardItem(QString("Nazwa")));
model->setHorizontalHeaderItem(2, new QStandardItem(QString("Haslo")));
QSqlQuery query;
a = 0;
query.exec("SELECT * from person");
while(query.next())
{
for(int x=0; x<3; x++)
{
sstr = query.value(x).toString();
item = new QStandardItem(sstr);
model->setItem(a, x, item);
}
a++;
}
//set model
tblv->setModel(model);
tblv->resizeRowsToContents();
tblv->setFixedSize(800,600);
tblv->setColumnWidth(2,350);
tblv->setColumnWidth(1,350);
tblv->setColumnWidth(0,50);
tblv->scrollToBottom();
}
}
To copy to clipboard, switch view to plain text mode
Bookmarks