2016-05-09 4 views
0

У меня есть список входов из документа csv в QListWidget, и я хочу связать каждый элемент с идентификатором, поэтому, когда я дважды кликнуть на конкретный элемент, я могу его настроить. Я попытался с этим «QListWidgetItem * item = rowData;», но это дало мне ошибку. код в конструкторе:Qt - QStringList to QListWidget * item

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(); 


} 
+0

Что вы подразумеваете под его настройкой? Изменить значение? – Apin

+0

Таким образом, QStringList содержит различные типы данных, категорию, имя и дату. Который я хотел бы иметь возможность настроить в другом файле. – giggitygoat

+0

Что вы пытаетесь достичь с помощью 'QListWidgetItem * item = rowData;'? – thuga

ответ

0

Позвольте мне ответить. Это OFC ошибка:

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(); 
} 
Смежные вопросы