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)

用于移除添加的部件

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

时间: 2025-02-01 17:44:20

QListWidget添加小控件的相关文章

QListWidget加入小控件

在写一个简单的文件浏览器时,遇到一个问题.想实现新建目录时能像一般的文件管理器那样,目录图标以下有一个编辑框提示用户给目录命名(例如以下图),可是不知道怎么给单元项QListWidgetItem加入QLineEdit控件.查了好久Qt帮助文档,最终发现了QListWidget::setItemWidget(),就试了一下.成功加入了,还算惬意.大家假设有更好的方法请告诉我. void QListWidget::setItemWidget(QListWidgetItem * item, QWidg

Android UI设计之<十一>自定义ViewGroup,打造通用的关闭键盘小控件ImeObserverLayout

转载请注明出处:http://blog.csdn.net/llew2011/article/details/51598682 我们平时开发中总会遇见一些奇葩的需求,为了实现这些需求我们往往绞尽脑汁有时候还茶不思饭不香的,有点夸张了(*^__^*)--我印象最深的一个需求是在一段文字中对部分词语进行加粗显示.当时费了不少劲,不过还好,这个问题最终解决了,有兴趣的童靴可以看一下:Android UI设计之<六>使用HTML标签,实现在TextView中对部分文字进行加粗显示. 之前产品那边提了这样

如何在Android实现桌面清理内存简单Widget小控件

如何在Android实现桌面清理内存简单Widget小控件 我们经常会看到类似于360.金山手机卫士一类的软件会带一个widget小控件,显示在桌面上,上面会显示现有内存大小,然后会带一个按键功能来一键清理内存,杀死后台进程的功能,那么这个功能是如何实现的呢,我们今天也来尝试做一个类似的功能的小控件. 效果图: 一.UI部分的编写: 参照Google的文档,首先在建立一个类继承AppWidgetProvider import android.appwidget.AppWidgetProvider

桌面小控件的实例-----数字时钟

为了实现一个数字时钟的桌面组件,开发者需要在程序界面上定义8个ImageView,其中6个ImageView用于显示小时.分钟.秒钟的数字,另外两个ImageView用于显示小时.分钟.秒钟之间的冒号. 为了让桌面组件实时的显示当前时间,程序需要每个1秒更新一次程序界面上的6个ImageView,让它们显示当前小时.分钟.秒钟的数字即可. import java.text.SimpleDateFormat;import java.util.Date;import java.util.Timer;

mac下dashboard小控件开发实例(附源码)

1.背景 用mac的用户都应该知道,mac有一个很好的功能,就是dashboard小控件的功能,按下F12键就可以自由切换.博主最近在背GRE单词,就尝试这开发了一个背单词的dashboard小控件.效果如图 2.步骤 (1)安转dashcode 这个是开发工具,用起来有点像xcode, 下载地址:https://developer.apple.com/downloads/index.action (2)打开dashcode,新建项目 打开右上角的资源库,可以随意拖拉控件在里面.然后右键需要添加

xib或storyBoard中往scrollView添加子控件

如何在xib或者storyBoard中的scrollView加拖拽子控件,并且能让它可以正常滚动,那么下面就为大家简单演示: 运行环境为:Xcode 7.3 备注:图片较大,如果看不清看可以右键鼠标在新标签中打开图片就很清晰了 1.如图我们往storyBoard拖拽一个scrollView并设置为上下左右约束距离父控件为0 2.当我们往scrollView中添加子控件时候却发现报错了 因为scrollView比较特殊,需要设置contentSize,这个错误和平常我们遇到的错误不一样,因为在这两

等级显示小控件

等级控件效果图: 实现方式: 自定义小控件,通过frame来获取它的坐标,然后通过富文本的方式来实现不同文字,由于文字粗体和斜体要同时使用,所以通过富文本实现比较方便: 声明文件: 其中有两个方法,一个是初始化,一个是改变等级需要调用的方法: #import <UIKit/UIKit.h> @interface IDSLevelconView : UIImageView @property (nonatomic, strong) UILabel *levelabel; - (instancet

openlayers3添加地图控件

//添加属性控件 map.addControl(new ol.control.Attribution()); //添加鼠标定位控件 map.addControl(new ol.control.MousePosition({ undefinedHTML: 'outside', projection: 'EPSG:4326', coordinateFormat: function(coordinate) { return ol.coordinate.format(coordinate, '{x},

javascript翻页小控件paginator

$(container).paginator({  totalrecords : totalRecords,  recordsperpage : recordsPerpage,  pagebtncount : pageBtnCount,  initval : currentPage,  next : '次へ',  prev : '前へ',  first : '',  last : '',  theme : '',  controlsalways : false,  onchange : func