Я недавно начал работать с QT, и у меня возникла небольшая проблема.Я не могу понять, как работает QVariant.Я просматриваю помощь и смотрю онлайн, но она просто не тонет. В моем проекте я пытаюсь заполнить поле со списком производителей из базы данных.Я открыл базу данных и вытащил записи, но переименовал их все manValue.Теперь я понимаю, почему это происходит, проблема в том, что я не понимаю, как правильно использовать QVariant, чтобы получить желаемый результат.Первоначально я думал, что «manValue» будет идентификатором строки, в которой хранится фактическое значение из базы данных, но вместо этого он считывает значение из базы данных и проверяет, что оно не равно нулю, а затем переименовывает его.Я уже пытался создать строку, прежде чем назначить QVariant с какими-либо свойствами и присвоить ему текст, полученный из базы данных, а затем вставить эту строку, где manValue, но все еще не повезло.Любая помощь будет принята с благодарностью.Извините, я знаю, что это будет просто, я просто нуб, и справочные документы часто смущают меня.
QSqlDatabase db = QSqlDatabase::addDatabase("QODBC");
db.setHostName("LOCALHOST\\TestERPServer");
db.setDatabaseName("TestERPConnection");
if (db.open())
{
QMessageBox::information(this,"Connected","Connection to the Database was Established\n"
"\nStatus: Connected");
QSqlQuery mfrQry;
if (mfrQry.exec("SELECT * FROM erp_data.manufacturers;"))
{
if (mfrQry.value(1) == "")
{
QMessageBox::information(this,"No Connection","Nothing in the Manufacturer Database\n"
"\nError: " + db.lastError().text());
}
else
{
while (mfrQry.next())
{
ui->mfrComboBox->addItem("manValue",QVariant(mfrQry.value(1)));
}
}
}
else
{
QMessageBox::information(this,"No Connection","Connection to the Manufacturer Database could not be Established\n"
"\nError: " + db.lastError().text());
}
}
else
{
QMessageBox::information(this,"No Connection","Connection to the Database could not be Established\n"
"\nError: " + db.lastError().text());
}