最近在做一个小的项目,其中想使用qlistwidget实现自定义数据的显示,自定义行要求有图片列,文字列,按钮列等,于是研究了一下qlistwidget的使用。
要想实现上述要求,必须按如下顺序实现
1、这里重点是ui->listWidget->addItem(item);的使用,必须先将QListWidgetItem对象加入qlistwidget。
QListWidgetItem *item=new QListWidgetItem;
item->setSizeHint(QSize(10,100));
ui->listWidget->addItem(item);
2、定义完如上,接下来就是下面这个函数的使用
void QListWidget::setItemWidget(QListWidgetItem * item, QWidget * widget)
这个函数实际上是将QWidget对象与QListWidgetItem对象进行绑定,具体操作如下:
QWidget *w = new QWidget;
QHBoxLayout *layout=new QHBoxLayout;
QPushButton *pushButton=new QPushButton(w);
QCheckBox *checkBox=new QCheckBox(w);
layout->addWidget(checkBox);
layout->addWidget(pushButton);
w->setLayout(layout);
ui->listWidget->setItemWidget(item,w);
基本效果如下,当然你也可以在ui界面设计QWidget对象,使其布局达到自己需求的样式。