[PyQt] Model/View programming

Scott Frankel frankel at circlesfx.com
Thu May 6 21:05:51 BST 2010


I have not yet found a better way to do this than by first building a  
list of rows you want to be visible, then setting the model's filter  
with setFilter().



On May 6, 2010, at 12:24 PM, Philippe Crave wrote:

> Yes, I use that in the model also.
> but now, I need to iterate over the row, in the tableView. I want to
> hide row when the data is an empty string.
> I found that I can get the string with  
> self.currentIndex().data().toString()
> so, I suppose that I have to find a way to modify the currentIndex
>
>
> 2010/5/6 Scott Frankel <frankel at circlesfx.com>:
>>
>> On May 6, 2010, at 9:46 AM, Philippe Crave wrote:
>>
>>> actually, I just want to loop over the rows.
>>> I do not find a max_row, or an iterator over the rows of a Table.
>>
>> Take a look at your model's rowCount() and record() methods.  I  
>> think you'll
>> want to be iterating over the records in your model, not the  
>> tableview
>> itself.
>>
>> Scott
>>
>>
>>> 2010/5/6 Philippe Crave <philippe.crave at gmail.com>:
>>>>
>>>> thank you, both of you !
>>>> I will check the filtering solution.
>>>> I am now implementing the setColumnHidden. just have to customize a
>>>> QTableView class. seems simple.
>>>>
>>>> by the way, do you know how to get the total number of row in a  
>>>> table ?
>>>> i must be blind, but I could not find it.
>>>>
>>>> 2010/5/6 Christian Brugger <brugger.chr at googlemail.com>:
>>>>>
>>>>> Just to outline my idea a bit more:
>>>>> Yeah one model class and one view class. But with different  
>>>>> filters
>>>>> between
>>>>> model and views. You wouldn't just attach your 2 views to your  
>>>>> model,
>>>>> but
>>>>> rather would attach each view to an individual filter (could be  
>>>>> two
>>>>> objects
>>>>> of the same custom filter class) and then would attach both  
>>>>> filters to
>>>>> your
>>>>> model. Such a custom filter could be created as described in the  
>>>>> docs:
>>>>>
>>>>> http://doc.trolltech.com/4.6/model-view-proxy-models.html#custom-filtering-models
>>>>> But as far as I see, Benjamin has found a much simpler solution,  
>>>>> if you
>>>>> only
>>>>> want so hide columns. I would test his suggestion first and  
>>>>> check if it
>>>>> fits
>>>>> your needs.
>>>>> Christian
>>>>>
>>>>> On Thu, May 6, 2010 at 5:15 PM, Philippe Crave
>>>>> <philippe.crave at gmail.com>
>>>>> wrote:
>>>>>>
>>>>>> looks like that I have to do a QAbstractTableModel for each  
>>>>>> QTableView,
>>>>>> no
>>>>>> ?
>>>>>> sounds strange, I thought that the idea was to have only one  
>>>>>> model
>>>>>> that will serve data to several views.
>>>>>>
>>>>>> 2010/5/6 Philippe Crave <philippe.crave at gmail.com>:
>>>>>>>
>>>>>>> Hello,
>>>>>>>
>>>>>>> I am reading the chapter 14 of Mark Summerfield.
>>>>>>> I work with custom model and custom delegate.
>>>>>>>
>>>>>>> in the sample from the book, we have 1 tableView linked to one  
>>>>>>> model.
>>>>>>> It's simple to get 2 tableView linked to the same model.
>>>>>>>
>>>>>>> my Model has got 4 columns.
>>>>>>> I would like that TableView_1 show the 2 first column only, and
>>>>>>> TableView_2 show the 2 others.
>>>>>>>
>>>>>>> what is the good way to do it ?
>>>>>>> actually, the content of the model will be given to the view  
>>>>>>> in the
>>>>>>> data(self, index, role=Qt.DisplayRole) method from the custom  
>>>>>>> model.
>>>>>>> is there a way to know which view needs data in that data  
>>>>>>> method ?
>>>>>>>
>>>>>>> thanks,
>>>>>>>
>>>>>>> Philippe
>>>>>>>
>>>>>> _______________________________________________
>>>>>> PyQt mailing list    PyQt at riverbankcomputing.com
>>>>>> http://www.riverbankcomputing.com/mailman/listinfo/pyqt
>>>>>
>>>>>
>>>>
>>> _______________________________________________
>>> PyQt mailing list    PyQt at riverbankcomputing.com
>>> http://www.riverbankcomputing.com/mailman/listinfo/pyqt
>>
>>
> _______________________________________________
> PyQt mailing list    PyQt at riverbankcomputing.com
> http://www.riverbankcomputing.com/mailman/listinfo/pyqt



More information about the PyQt mailing list