Qt QListWidget

半世苍凉 提交于 2019-12-02 18:54:56

以下代码是 List Widget 添加数据项的代码,一般放在构造函数即可。

/*********************添加数据项*********************/
    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"));

以下是切换List Widget视图,删除现行选中项,获取关联数据的代码。

// 切换视图按钮点击事件处理函数
void ListWidget::ViewModeClick()
{
    if (ui.listWidget->viewMode() == QListView::ListMode)
    {
        ui.listWidget->setViewMode(QListView::IconMode);
    }
    else
    {
        ui.listWidget->setViewMode(QListView::ListMode);
    }
}

// 移除按钮点击事件处理函数
void ListWidget::RemoveClick()
{
    // 获取当前选中项
    int row = ui.listWidget->currentRow();
    // 移除当前选中项
    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;
}

 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!