小弟我不才
除錯後可以執行,但是點擊Button,會無法秀出結果(在LineEdit)
有哪位高手可以改正我的錯誤語法和宣告方式?
我不曉得我城市中的宣告,QString data_1="",data_2="";、 char b[20];、const char *long、data_2 += longi;、
ui->GpsReceive->setText(data_2);這幾個算是Qt正確的語法嗎?
----------------------------------------------------------------------------------------------------------------------------------------------
void Dialog::readcom()
{
connect(ui->readBtn,SIGNAL(clicked()),this,SLOT(readcom()));
while(1)
{
gps=1;
QString data_1="",data_2="";
res=read(fd,buf,256);
buf[res]='\0';
if((buf[3]!='G')||(buf[4]!='G')||(buf[5]!='A'))
{
num=0;
for(i=0;i<res;i++)
{
data_1 += buf;
if(buf!=',')
{
continue;
}
else
{
num++;
}
switch(num)
{
case 6:
if(buf[i+1]=='0')
{
ui->GpsReceive->setText(data_1);
ui->GpsReceive_2->setText("GPA is not True");
break;
}
}
}
num=0;
if(gps!=0)
{
for(i=0;i<res;i++)
{
if(buf!=',')
{
continue;
}
else
{
num++;
}
switch(num)
{
case 1://時間
data_2 += "Taiwan Timee:";
Time[0]=buf[i+1];
Time[1]=buf[i+2];
Time[2]='\0';
char b[20];
tt = atoi(Time)+8;
sprintf(b,"%d",tt);
data_2 += b;
data_2 += ":";
Time[0]=buf[i+3];
Time[1]=buf[i+4];
Time[2]='\0';
mm = atoi(Time);
sprintf(b,"%d",mm);
data_2 += b;
data_2 += ":";
Time[0]=buf[i+5];
Time[1]=buf[i+6];
Time[2]='\0';
ss= atoi(Time);
sprintf(b,"%d",ss);
data_2 += b;
data_2 += ",";
break;
case 2://緯度
latiplace1[0] = buf[i+1];//度
latiplace1[1] = buf[i+2];//度
latiplace1[2] = '\0';
latiplace2[0] = buf[i+3];//分
latiplace2[1] = buf[i+4];//分
latiplace2[2] = buf[i+5];//buf[i+5] 是 .
latiplace2[3] = buf[i+6];//分
latiplace2[4] = buf[i+7];//分
latiplace2[5] = buf[i+8];//分
latiplace2[6] = buf[i+9];//分
latiplace2[7] = '\0';
latitude = atof(latiplace1) + atof(latiplace2)/60; //120
//char b[20];
sprintf(b,"%f",latitude);
data_2 += b;
data_2 += ",";
ui->latitudeLineEdit->setText(b);
break;
case 3://南北緯
if(buf[i+1]=='N')
{
QString lati = "North Latitude";
}
else
{
lati = "South Latitude";
}
data_2 += lati;
data_2 += ",";
break;
case 4://經度
longiplace1[0] = buf[i+1];//度
longiplace1[1] = buf[i+2];//度
longiplace1[2] = buf[i+3];//度
longiplace1[3] = '\0';
longiplace2[0] = buf[i+4];//分
longiplace2[1] = buf[i+5];//分
longiplace2[2] = buf[i+6];//buf[i+6] 是.
longiplace2[3] = buf[i+7];//分
longiplace2[4] = buf[i+8];//分
longiplace2[5] = buf[i+9];//分
longiplace2[6] = buf[i+10];//分
longiplace2[7] = '\0';
longitude = atof(longiplace1) +atof(longiplace2)/60;
sprintf(b,"%f",longitude);
data_2 += b;
data_2 += ",";
ui->longitudeLineEdit->setText(b);
break;
case 5://東西經
if(buf[i+1]=='E')
{
longi = "East Longitude";
}
else
{
longi = "West Longitude";
}
data_2 += longi;
data_2 += "。";
break;
case 6:
ui->GpsReceive->setText(data_1);
ui->GpsReceive_2->setText(data_2);
}
}
}