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