以下代码是 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; }