Отображение результатов SQL-запроса внутри QLabel

Я пишу приложение Qt GUI, где я планирую показать вывод запроса SQL внутри QLabel.

Теперь заполнение вывода внутри модели 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 ???

Результатом запроса будет одна запись. Например, название самой высокой в ​​мире горы или название столицы Энгальда. Просто отдельные записи.

3

Решение

Если вы хотите использовать QSqlQueryModel для этого вы можете использовать QSqlQueryModel::record ( int row ) извлечь конкретную запись, а затем QSqlRecord::value ( int index ) чтобы получить значение поля:

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

Другие решения

Вы можете получить результат с помощью метода value. Например:

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

}
label->setText(country);

Также вы можете прочитать данные из модели1. Что-то вроде:

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

По вопросам рекламы [email protected]