[Qt-interest] dataChanged() SIGNAL in proxy models
Stephen Kelly
steveire at gmail.com
Thu Jul 1 22:43:30 CEST 2010
Mandeep Sandhu wrote:
>>> List = 1,2,3,4,5
>>>
>>> Table:
>>> 1,2,3
>>> 4,5
>>
>> You might have seen these, but I'll draw your attention to them anyway:
>>
>> http://doc.trolltech.com/latest/qlistview.html#LayoutMode-enum
>> http://doc.trolltech.com/latest/qlistview.html#batchSize-prop
>>
>> It doesn't really make the data tabular, but it will lay it out in rows.
>
> I had tried it sometime back. Didn't seem to work then. This is what I
> had tried (some quick code):
>
> class Widget : public QWidget
> {
>
> public:
> Widget(QWidget *parent = 0) : QWidget(parent)
> {
> QStringListModel *model = new QStringListModel(this);
> QStringList list;
> list << "0" << "1" << "2" << "3" << "4" << "5";
> model->setStringList(list);
> QListView *view = new QListView(this);
> view->setModel(model);
> view->setLayoutMode(QListView::Batched);
> view->setBatchSize(3);
> QVBoxLayout *vb = new QVBoxLayout(this);
> vb->addWidget(view);
> }
> ~Widget() {}
> };
>
> int main(int argc, char *argv[])
> {
> QApplication a(argc, argv);
> Widget w;
> w.show();
> return a.exec();
> }
>
> Another problem is that I cannot control the number rows that should
> be displayed. Setting batch size, I presume, will layout the list
> items with columns = batchSize and rows = (total num of list
> items)/batchSize [+1 if it's not fully divisable by batchSize]
That's what I thought too, but on reading the docs again, it seems that's
not right. That API is about delaying the layouting of items, not grouping
of items.
I tried using other api like
view->setViewMode(QListView::IconMode);
view->setWrapping(true);
view->setGridSize(QSize(30, 20));
but I couldn't make that work either.
It seems like something that should be possible though, maybe someone else
knows.
All the best,
Steve.
>
>>
>>>
>>> The reason I'm doing this is because the source of the data is
>>> returning a list but the display has to be tabular (I could still
>>> extract the list data and populate a table model, but I though this
>>> might turn out to be easier).
>>
>> If the choice really is between a proxy to turn the stuff into a table or
>> implement your own model to structure the data in a tabular way in the
>> first place, I still recommend the table model, not the proxy.
>
> Ok. Will think about it.
>
> Thanks,
> -mandeep
More information about the Qt-interest-old
mailing list