1> 转换丢失限定符
for ( int i=0; i<listProvince.size(); i++ )
{
QString strProvinceName = (listProvince.at(i)).GetAreaName();//----------------报错---------------------
ui.sCityProvinceCombo->addItem( strProvinceName );
}
解决方法:
for ( int i=0; i<listProvince.size(); i++ )
{
FourLevelAddressBase temp = listProvince.at(i);
QString strProvinceName = temp.GetAreaName();
ui.sCityProvinceCombo->addItem( strProvinceName );
}
终极原因:
QList< FourLevelAddressBase > &listCity
QStringList strTempList;
for ( int i=0; i<listCity.size(); i++ )
{
strTempList<<listCity.at(i).GetAreaName();//调用出错。
}
原因为QList的at()方法返回值为const T类型的,是const类型。
所以,需要将FourLevelAddressBase类的GetAreaName()修改为const成员函数即可。