关于 qlistwidget的咨询解决方案

关于 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.