码迷,mamicode.com
首页 > 其他好文 > 详细

QListWidget添加小控件

时间:2015-07-23 00:45:15      阅读:205      评论:0      收藏:0      [点我收藏+]

标签:

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

用于移除添加的部件

版权声明:本文为博主原创文章,未经博主允许不得转载。

QListWidget添加小控件

标签:

原文地址:http://blog.csdn.net/lyh__521/article/details/47012227

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!