[Qt-interest] How do I show a list of complex items (like firefox's download list)?
Witteveen, Arnt
ArntW at enfocus.com
Mon Jan 5 11:08:52 CET 2009
(To those who are also member of [Qt4-preview-feedback, I've asked this
there before, but some one pointed out this list as a better one for
this question.)
I'm looking to make something very much like firefox's (or most other
browsers, I guess) list of things downloaded: a list of compound
widgets, which each widget containing an icon, a few labels, a button or
2 and somehting like a progress bar (for some of the time, until it is
completed).
I've tried (and failed) using QListView with a drawing delegate. Even if
that would work, I think it would only draw things like the button, but
not make the interaction on them work. Then I switched to QListWidget. I
can set the default QT widgets using setItemWidget, but as soon as I try
to set a derived widget which is composed of serveral others, that
doesn't do anything? I tried the widget outside the listview and it does
work as expected. This is what I did (for testing, the widget I tried
just shows a fixed label and button):
QVBoxLayout* theListLayout = new QVBoxLayout(this);
setLayout(theListLayout);
QListWidget* theListView = new QListWidget();
theListLayout->addWidget(theListView);
QListWidgetItem* theItem1 = new QListWidgetItem(tr("t1") );
theListView->addItem(theItem1);
theListView->addItem(tr("t2"));
theListView->addItem(tr("t3"));
QWidget* theWidget1 = new QWidget();
QHBoxLayout* theItemLayout = new QHBoxLayout();
theWidget1->setLayout(theItemLayout);
theItemLayout->addWidget( new QPushButton(tr("a")));
theItemLayout->addWidget( new QLabel(tr("b")));
theListView->setItemWidget(theListView->item(1), theWidget1);
theListView->setItemWidget(theListView->item(2), new
QPushButton(tr("ttt")));
//to test the widget: this does work: theListLayout->addWidget(
theWidget1);
So unless the above should work and I do somehting wrong, all I can now
think of is to do it all manually, with a scrollarea containing all the
widgets I need?
Arnt
More information about the Qt-interest-old
mailing list