void InstrumentsForm::onGotInstrument(void* p) { auto item = (InstrumentField*)p; QVariantMap mdItem; mdItem.insert("InstrumentID", item->InstrumentID); mdItem.insert("ExchangeID", item->ExchangeID); mdItem.insert("InstrumentName", gbk2utf16(item->InstrumentName)); mdItem.insert("ExchangeInstID", item->ExchangeInstID); mdItem.insert("PriceTick", item->PriceTick); mdItem.insert("CreateDate", item->CreateDate); mdItem.insert("OpenDate", item->OpenDate); mdItem.insert("ExpireDate", item->ExpireDate); mdItem.insert("StartDelivDate", item->StartDelivDate); //根据id找到对应的行,然后用列的text来在map里面取值设置到item里面= int row = ui->tableWidget->rowCount(); ui->tableWidget->insertRow(row); for (int i = 0; i < instruments_col_.count(); i++) { QVariant raw_val = mdItem.value(instruments_col_.at(i)); QString str_val = raw_val.toString(); if (raw_val.type() == QMetaType::Double || raw_val.type() == QMetaType::Float) { str_val = QString().sprintf("%6.1f", raw_val.toDouble()); } QTableWidgetItem* item = new QTableWidgetItem(str_val); ui->tableWidget->setItem(row, i, item); } }
bool isErrorRsp(CThostFtdcRspInfoField* pRspInfo, int reqId) { if (pRspInfo && pRspInfo->ErrorID != 0) { BfInfo("<==error,reqid=%d,errorId=%d,msg=%s", reqId, pRspInfo->ErrorID, gbk2utf16(pRspInfo->ErrorMsg).toUtf8().constData()); return true; } return false; }