关于 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被管理员删除
------其他解决方案--------------------
谢谢,不过注释掉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.
本帖最后由 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被管理员删除
------其他解决方案--------------------
谢谢,不过注释掉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.