Est-il possible dans un QListWidget d'insérer des widget de n'importe quelle nature, par exemple faire une liste de progressbar avec des labels ?
Si oui comment procéder ?
QListWidget* lstWidgets = new QListWidget(); QProgressBar* pBar = new QProgressBar(lstWidgets); ... QListWidgetItem* item = new QListWidgetItem(), item->setData(Qt:: DisplayRole, qVariantFromValue(pBar)); lstWidgets->addItem(item); ...

geogeo (./3) :
Ah oui désolé de n'avoir pas précisé. Sans KDE.

(t'as fait comment pour trouver rapidement ?)



class MyProgressBar : public QProgressBar
{
public:
MyProgressBar(QWidget* parent = 0)
: QProgressBar(parent)
{
this->startTimer(500);
}
void timerEvent(QTimerEvent *event) {
setValue(value() + 1);
}
};
int main(int argc, char **argv)
{
QApplication a(argc, argv);
QListWidget listView;
listView.resize(400, 300);
for (int i = 0; i < 5; i++)
{
QListWidgetItem *item = new QListWidgetItem("", &listView);
item->setSizeHint(QSize(200,40));
listView.addItem(item);
QWidget* w = new QWidget();
QLabel* l = new QLabel("Label", w);
MyProgressBar* p = new MyProgressBar(w);
p->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed);
QPushButton* b = new QPushButton("Cliquez-moi !", w);
QObject::connect(b, SIGNAL(clicked()), qApp, SLOT(aboutQt()));
QHBoxLayout* hlayout = new QHBoxLayout();
hlayout->setMargin(10);
hlayout->addWidget(l);
hlayout->addWidget(p);
hlayout->addWidget(b);
w->setLayout(hlayout);
listView.setItemWidget(item, w);
}
QPushButton* b = new QPushButton("Quitter");
b->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Expanding);
QObject::connect(b, SIGNAL(clicked()), qApp, SLOT(quit()));
QListWidgetItem *item = new QListWidgetItem("", &listView);
item->setSizeHint(QSize(200,100));
listView.addItem(item);
listView.setItemWidget(item, b);
listView.show();
return a.exec();
}