QListWidget添加小控件

来源:互联网 发布:炒股软件免费下载 编辑:程序博客网 时间:2024/06/15 08:42

在写一个简单的文件浏览器时,遇到一个问题,想实现新建文件夹时能像一般的文件管理器那样,文件夹图标下面有一个编辑框提示用户给文件夹命名(如下图),但是不知道怎么给单元项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)

用于移除添加的部件

0 0
原创粉丝点击