Qt QListWidget

The following code is List Widget code to add a data item, usually in the constructor can be.

/*********************添加数据项*********************/
    QIcon icon1("C:\\Users\\Administrator.USER-20190313RI\\Desktop\\img\\book.png");
    QListWidgetItem* item = new QListWidgetItem(icon1, "book");
    // 设置关联数据
    item->setData(Qt::UserRole, 1);
    item->setData(Qt::ToolTipRole, "this is tooltip!");
    ui.listWidget->addItem(item);

    QIcon icon2("C:\\Users\\Administrator.USER-20190313RI\\Desktop\\img\\heart.png");
    ui.listWidget->addItem(new QListWidgetItem(icon2, "heart"));
    QIcon icon3("C:\\Users\\Administrator.USER-20190313RI\\Desktop\\img\\location.png");
    ui.listWidget->addItem(new QListWidgetItem(icon3, "location"));

The following are switched List Widget view, delete the current selected items, get the code associated data.

// switch View button click event handler 
void ListWidget :: ViewModeClick () 
{ 
    IF (ui.listWidget-> viewMode () == QListView :: listmode) 
    { 
        ui.listWidget -> SetViewMode (QListView :: IconMode); 
    } 
    the else 
    { 
        ui.listWidget -> SetViewMode (QListView :: listmode); 
    } 
} 

// remove button click event handler 
void ListWidget :: RemoveClick () 
{ 
    // get the currently selected item 
    int Row = ui.listWidget-> currentRow () ;
     // remove the currently selected item 
    QListWidgetItem * item = ui.listWidget->takeItem(row);
    if (item)
    {
        delete item;
    }

}

// 双击条目获取关联数据
void ListWidget::OnItemDBClick(QListWidgetItem* item)
{
    // QMessageBox::information(this, "SSS", item->text());
    int value = item->data(Qt::UserRole).toInt();
    QString str = item->data(Qt::ToolTipRole).toString();
    qDebug() << value << endl;
    qDebug() << str << endl;
}

 

Guess you like

Origin www.cnblogs.com/duxie/p/11758656.html