您的位置:首页 > 编程语言 > Qt开发

QT21 Display selected row from QTableView to QlineEdit

2016-03-31 02:53 633 查看
1. modify employeeinfo.cpp 

#include "employeeinfo.h"
#include "ui_employeeinfo.h"
#include "login.h"
#include <QMessageBox>
EmployeeInfo::EmployeeInfo(QWidget *parent) :
QDialog(parent),
ui(new Ui::EmployeeInfo)
{
ui->setupUi(this);
if(!login::connOpen())
{
ui->label_sec_status->setText("Failed to open the database") ;

}
else
{
ui->label_sec_status->setText("Connected...") ;

}
}

EmployeeInfo::~EmployeeInfo()
{
delete ui;
}

void EmployeeInfo::on_pushButton_clicked()
{

QString eid, name, surname, age;
eid = ui->txt_eid->text();
name =ui->txt_name->text();
surname = ui->txt_surname->text();
age = ui->txt_age->text();

if(!login::connOpen())
{
qDebug() << "Failed to open the database";
return ;
}

QSqlQuery qry;

QString stmt = "insert into employeeinfo (eid,name,surname,age) values('"+ eid +"','"+ name +"','"+ surname +"','"+ age +"')";
qry.prepare(stmt);
if( qry.exec())
{
QMessageBox::information(this, tr("Save"), tr("Saved"));
login::connClose();
}
else
{
QMessageBox::critical(this, tr("Error"), qry.lastError().text());
}
}

void EmployeeInfo::on_pushButton_edit_clicked()
{
QString eid, name, surname, age;
eid = ui->txt_eid->text();
name =ui->txt_name->text();
surname = ui->txt_surname->text();
age = ui->txt_age->text();

if(!login::connOpen())
{
qDebug() << "Failed to open the database";
return ;
}

QSqlQuery qry;

QString stmt = "update employeeinfo set eid='"+ eid+"',name='"+ name+ "',surname='"+ surname+"',age='"+ age +"'where eid='" + eid + "'";
qry.prepare(stmt);
if( qry.exec())
{
QMessageBox::information(this, tr("Edit"), tr("Updated"));
login::connClose();
}
else
{
QMessageBox::critical(this, tr("Error"), qry.lastError().text());
}
}

void EmployeeInfo::on_pushButton_delete_clicked()
{
QString eid, name, surname, age;
eid = ui->txt_eid->text();
// name =ui->txt_name->text();
// surname = ui->txt_surname->text();
// age = ui->txt_age->text();

if(!login::connOpen())
{
qDebug() << "Failed to open the database";
return ;
}

QSqlQuery qry;

QString stmt = "delete from employeeinfo where eid = '"+ eid +"'";
qry.prepare(stmt);
if( qry.exec())
{
QMessageBox::information(this, tr("Delete"), tr("Deleted"));
login::connClose();
}
else
{
QMessageBox::critical(this, tr("Error"), qry.lastError().text());
}
}

void EmployeeInfo::on_pushButton_load_clicked()
{
QSqlQueryModel * modal = new QSqlQueryModel();
QSqlQueryModel * tableModel = new QSqlQueryModel();
login::connOpen();
QSqlQuery* qry = new QSqlQuery(login::mydb);
QString stmt;

stmt = "select eid,name,surname,age from employeeinfo";

qry->prepare(stmt);
qry->exec();
tableModel->setQuery(*qry);
ui->tableView->setModel(tableModel);

stmt = "select name from employeeinfo";

qry->prepare(stmt);
qry->exec();
modal->setQuery(*qry);

ui->listView->setModel(modal);
ui->comboBox->setModel(modal);
login::connClose();
qDebug() << modal->rowCount();
}

void EmployeeInfo::on_comboBox_currentIndexChanged(const QString &arg1)
{
QString name = ui->comboBox->currentText();
if( !login::connOpen())
{
qDebug() << "Failed to open the database";
return;
}
QSqlQuery qry;
QString stsm = "select * from employeeinfo where name = '"+ name +"'";
qry.prepare(stsm);
if( qry.exec())
{
while(qry.next())
{

ui->txt_eid->setText(qry.value(0).toString());
ui->txt_name->setText(qry.value(1).toString());
ui->txt_surname->setText(qry.value(2).toString());
ui->txt_age->setText(qry.value(3).toString());
}
login::connClose();
}
else
{
QMessageBox::critical(this, tr("Error"), qry.lastError().text());
}
}

void EmployeeInfo::on_tableView_activated(const QModelIndex &index)
{
QString val = ui->tableView->model()->data(index).toString();
if( !login::connOpen())
{
qDebug() << "Failed to open the database";
return;
}
QSqlQuery qry;
QString stsm = "select * from employeeinfo where eid = '"+ val +"' or name = '"+ val +"' or surname = '"+ val +"' or age = '"+ val +"' ";
qry.prepare(stsm);
if( qry.exec())
{
while(qry.next())
{

ui->txt_eid->setText(qry.value(0).toString());
ui->txt_name->setText(qry.value(1).toString());
ui->txt_surname->setText(qry.value(2).toString());
ui->txt_age->setText(qry.value(3).toString());
}
login::connClose();
}
else
{
QMessageBox::critical(this, tr("Error"), qry.lastError().text());
}
}


double clock the table cell result in the change of the content of editlilnes

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: