QListWidget加入小控件


在寫一個簡單的文件瀏覽器時,遇到一個問題。想實現新建目錄時能像一般的文件管理器那樣,目錄圖標以下有一個編輯框提示用戶給目錄命名(例如以下圖),可是不知道怎么給單元項QListWidgetItem加入QLineEdit控件。查了好久Qt幫助文檔,最終發現了QListWidget::setItemWidget(),就試了一下。成功加入了,還算愜意。大家假設有更好的方法請告訴我。

這里寫圖片描寫敘述

void QListWidget::setItemWidget(QListWidgetItem * item, QWidget * widget)

設置在給定項目中顯示的小部件。


此功能僅可用於在列表小部件項目的位置顯示靜態內容。假設你想顯示自己定義的動態內容或運行自己定義編輯器部件,使用qlistview和子類化QItemDelegate取代。
這個功能介紹Qt 4.1。

關鍵代碼:

//圖片換成目錄圖標就能夠
int main(int argc,char* argv[])
{
    QApplication  app(argc,argv);

    QListWidget  *listWidget = new QListWidget();
    listWidget->setSpacing(10);
    listWidget->setViewMode(QListView::IconMode);
    listWidget->setIconSize(QSize(100,100));
    QPixmap pix1(QString(":/list/image/1.jpg"));
    QPixmap pix2(":/list/image/2.jpg");
    QListWidgetItem *item1 = new QListWidgetItem(QIcon(pix1.scaled(QSize(100,100))),"picture1");
    QListWidgetItem *item2 = new QListWidgetItem(QIcon(pix2.scaled(QSize(100,100))),"picture2");

    QLineEdit*   line = new QLineEdit; //創建部件


    listWidget->addItem(item1);
    listWidget->addItem(item2);  //先加入項目 
    item1->setSizeHint(QSize(100,120));
    item2->setSizeHint(QSize(100,120));

    listWidget->setItemWidget(item2,line); //加入部件
// listWidget->removeItemWidget(item2);
    listWidget->show();
    app.exec();
    return 0;
}

這里寫圖片描寫敘述

void QListWidget::removeItemWidget(QListWidgetItem * item)

用於移除加入的部件


免責聲明!

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



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