读书人

关于 qlistwidget的咨询解决方案

发布时间: 2012-12-26 14:39:28 作者: rapoo

关于 qlistwidget的咨询
本帖最后由 0flying0 于 2012-12-07 11:58:12 编辑 看到这个方法不知道怎么使用

void setItemWidget(QListWidgetItem *item, QWidget *widget);



我的代码如下:
这个是继承qlistwidget的类的一段代码


QListWidgetItem pieceItem= new QListWidgetItem(this);
pieceItem->setIcon(QIcon(pixmap));

if(!appname.isEmpty())
{
pieceItem->setText(appname);
pieceItem->setFont(QFont("宋体",12,3,false));
}
pieceItem->setData(Qt::UserRole, QVariant(pixmap));
pieceItem->setData(Qt::UserRole+1, location);
qDebug("set Appid pieceItem %s ",qPrintable(appid));
pieceItem->setData(Qt::UserRole+2, appid);
pieceItem->setFlags(Qt::ItemIsEnabled | Qt::ItemIsSelectable
| Qt::ItemIsDragEnabled);
//0, new QSpinBox()
this->setItemWidget(pieceItem,new QSpinBox());


item显示的效果只显示了icon,不知道如何使用对应的widget。
我想实现的效果是 点击item之后,开启对应的一个widget。

[最优解释]
简化一下,做个测试:
QListWidgetItem *item= new QListWidgetitem;
listwidget->addItem(item);
listwidget->setItemWidget(item, widget(随便new个控件,如QPushButton));

是不是icon的问题?
[其他解释]
附上效果图,看不到new QSpinBox()
[其他解释]
该回复于2012-12-08 14:10:40被管理员删除
[其他解释]

引用:
简化一下,做个测试:
QListWidgetItem *item= new QListWidgetitem;
listwidget->addItem(item);
listwidget->setItemWidget(item, widget(随便new个控件,如QPushButton));

是不是icon的问题?


谢谢,不过注释掉icon之后,修改成
this->setItemWidget(pieceItem,new QPushButton);
效果如下:

[其他解释]
问题应该在这里:
This function should only be used to display static content in the place of a list widget item. If you want to display custom dynamic content or implement a custom editor widget, use QListView and subclass QItemDelegate instead.

读书人网 >QT开发

热点推荐