我最近開始使用QT,並遇到一個小問題。我似乎無法理解QVariant是如何工作的。我一直在尋求幫助,並在網上尋找,但它並沒有陷入。在我的項目中,我試圖用數據庫中的製造商列表填充組合框。我已經打開數據庫並提取條目,但我將它們重命名爲manValue。現在我明白爲什麼會發生這種情況,問題是我不明白如何正確使用QVariant來獲得我想要的結果。最初我認爲「manValue」將成爲字符串的標識符,該字符串保存數據庫中的實際值,但它會從數據庫讀取值並確保它不爲空,然後重命名它。在爲QVariant分配任何屬性併爲其分配文本之前,我已經嘗試過創建一個字符串,然後將該字符串插入manValue但仍然沒有運氣的位置。任何幫助將不勝感激。對不起,我知道這很簡單,我只是一個小菜鳥,幫助文檔經常讓我困惑。從數據庫提取數據時使用QVariant的正確方法
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());
}
即使它的設計相當不錯,Qt是複雜的,它需要很長的時間才能掌握。請不要爲不知道而道歉。 – 2012-03-20 20:54:42
謝謝,但真的,我已經開始約2周。掌握這樣的東西,我相信可以讓我度過一生,特別是如果他們不斷更新大聲笑,但到目前爲止,我真的很享受Qt的行爲方式。 – Rob 2012-03-20 20:57:36