2014-12-23 2 views
3

QLABEL 내부에서 SQL 쿼리의 출력을 보여줄 계획 인 qt gui 애플리케이션을 작성 중입니다.QLabel 내에서 sql 쿼리의 출력보기

인구가 많아 질수록 QTableView 모델의 출력은 간단하고 사용할 수 있습니다.

QSqlDatabase dbSqlite = QSqlDatabase::addDatabase("QSQLITE"); //these 2 lines for SQLite DB connection 
dbSqlite.setDatabaseName("/home/aj/test.db"); 
dbSqlite.setUserName("aj"); 

QString MyQuerySqlite = ui->sqlite_queryEdit->text(); //take the query from a QLineEdit 
dbSqlite.open(); //open db connection 
QSqlQuery query(MyQuerySqlite,dbSqlite); 

if(query.exec()) //populate in table 
{ 
    this->model1=new QSqlQueryModel(); 
    model1->setQuery(MyQuerySqlite); 
    ui->sqlite_tableView->setModel(model1); 

    qDebug()<<QDateTime::currentDateTime()<<"SQLITE QUERY SUCCESS "<<dbSqlite.lastError().text(); 
} 

QLabel 내부에서이를 수행하는 방법에 대한 아이디어가 있습니까 ???

쿼리 출력은 단일 레코드가됩니다. 예를 들어 세계에서 가장 높은 산의 이름 또는 Engalnd의 수도 이름. 단 한 번의 기록.

답변

3

이에 대한 QSqlQueryModel를 사용하려면 특정 레코드를 검색 할 QSqlQueryModel::record (int row)를 사용하여 다음 QSqlRecord::value (int index)는 필드의 값을 얻을 :

QString str = model1->record(0).value(0).toString(); 
label->setText(str); 
2

값 방법으로 결과를 얻을 수 있습니다. 예 :

QString country; 
QSqlQuery query("SELECT country FROM artist"); 
while (query.next()) { 
    country.append(query.value(0).toString() + " "); 

} 
label->setText(country); 

또한 model1의 데이터를 읽을 수 있습니다. 뭔가 같이 :

label->setText(model1->data(model1->index(0,0),Qt::DisplayRole).toString());