Qt - QStringList到QListWidget *项目

时间:2016-05-09 11:17:54

标签: c++ qt

我有一个来自QListWidget中csv文档的输入列表,我想将每个项目与一个ID相关联,所以当我双击特定项目时,我可以对其进行配置。我尝试了这个" QListWidgetItem * item = rowData;",但它给了我一个错误。 构造函数中的代码:

 if (getin.open(QFile::ReadOnly)) {

    //Collect all data from the file
    items = getin.readAll();

    //Split all data line by line
     rowOfData = items.split("\n");

     //Close csv document
     getin.close();

} //Go through the data collected, and split them by two delimiters.
for (int x = 0; x < rowOfData.size(); x++)
{
    rowData = rowOfData.at(x).split(",").first().split(":");

    if(!rowData.isEmpty())
        ui->itemListWidget->addItem(rowData.first());
   QListWidgetItem *item = rowData;

}

双击项目时的功能:

void storage::on_itemListWidget_itemDoubleClicked(QListWidgetItem *item)
{
itemwindow = new itemWindow(this);
itemwindow->show();


}

1 个答案:

答案 0 :(得分:0)

让我试着回答。这将是错误的:

QListWidgetItem *item = rowData;

因为rowData是一个StringList而不是* QListWidgetitem。

如果要获取rowOfData的完整行数据。您可以使用以下插槽:

void storage::on_itemListWidget_itemDoubleClicked(QListWidgetItem *item)
{
    QString yourRowData = rowOfData.at(ui->itemListWidget->row(item));
    itemwindow = new itemWindow(this);
    itemwindow->show();
}