2012-04-15 78 views
0

我似乎无法弄清楚这一点!我不断收到一个错误,说“预期的主要表达式之前'*'标记”没有其他提示。它发生在看起来像预期'*'标记之前的主表达式?

todoList->addItem(QListWidgetItem *taskStr->append(taskQry.value(1).toString())); 

这是什么意思,从我发现通过搜索这似乎是一个语法错误线,但可能有人向我解释为什么这是一个语法错误?有没有更好的方法将字符串附加到列表中?

todoList = new QListWidget(todoGroupBox); 

QSqlDatabase localdb = QSqlDatabase::database("TestERP"); 
if (localdb.open()) 
{ 
    QSqlQuery taskQry; 

    if (taskQry.exec("SELECT * FROM erp_data.todo_lists;")) 
    { 
     if (taskQry.value(1).toString() == "") 
     { 
      QMessageBox::information(this,"No Connection","Nothing in the Manufacturer Database\n" 
            "\nError: " + db.lastError().text()); 
     } 
     else 
     { 
      while (taskQry.next()) 
      { 
       QString *taskStr = new QString; 
       todoList->addItem(QListWidgetItem *taskStr->append(taskQry.value(1).toString())); 
      } 
     } 
    } 
    else 
    { 
     QMessageBox::information(new QWidget,"Not Connected","Connection to the Database could not be Established\n" 
           "\nError: " + db.lastError().text()); 
    } 
} 
else 
{ 
    QMessageBox::information(new QWidget,"Not Connected","Connection to the Database could not be Established\n" 
          "\nError: " + db.lastError().text()); 
} 
+0

你的意思'todoList->的addItem(新QListWidgetItem(taskStr->追加( taskQry.value(1)的ToString())));'? – Torious 2012-04-15 02:50:12

+0

这似乎确定了错误,但现在它说“缺少终止>字符”。那是什么意思? - 我明白了,我错过了一个包含的支架 - 我是个白痴。 – Rob 2012-04-15 02:51:57

+0

在堆上创建QStrings是无意义的。它们隐含地共享,因此便宜地复制。 – 2012-04-15 08:38:06

回答

1

我不确定你在做什么。但是,这将使它编译:

todoList->addItem(taskQry.value(1).toString()); 
0

也许你需要改变

while (taskQry.next()) 
     { 
      QString *taskStr = new QString; 
      todoList->addItem(QListWidgetItem *taskStr->append(taskQry.value(1).toString())); 
     } 

while (taskQry.next()) 
     { 
      // The QListWidgetItem is added automatically to todoList 
      new QListWidgetItem(taskQry.value(1).toString(), todoList); 
     } 
相关问题