小弟我不才
除錯後可以執行,但是點擊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);
  }
  }
  }