Qt QListWidget


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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM