[PyQt] trivial question regarding standarditemmodels
gsmith at troublemakerstudios.com
Fri Jun 12 15:36:15 BST 2009
Okay tell me if I'm doing something wrong, I am doing some basic test
executions on button logic
Here is what I got so far
sel_idxs = self.ui.myListView.selectedIndexes()
for i in sel_idxs:
msg = 'row: %s, col: %s' % (i.row(), i.column())
so in my listview I have 4 items, I select the first and third item
which should give me row indexes 0 and 2, what gets printed is this:
row: 2, col:0
row: 2, col:0
...umm that's not right. I try other selection combinations, and it
seems that only the last item that was selected, that row index gets
Only time it really works is if I make single selections. But I want the
user to be able to select which ever and the appropriate list of indexes
I'm at a loss on this one, I thought I had my problem pegged until I did
Any clues? This is beginning to drive me nuts!
From: pyqt-bounces at riverbankcomputing.com
[mailto:pyqt-bounces at riverbankcomputing.com] On Behalf Of Greg Smith
Sent: Thursday, June 11, 2009 6:12 PM
Subject: [PyQt] trivial question regarding standarditemmodels
Hey everyone. I have a QListView widget that is populated by a
QStandardItemModel, which I populated using the appendRow method with a
list containing QStandardItems.
My question is that I am creating a gui to where the user can select
multiple Items in the listview and press a button to remove those items
from the list.
Now for the most part, I figured the logic theory out in my head on how
to do this, where I am stuck is executing the logic within the context
of an ItemModel. Up to this point
I've learned enough about ItemModels to get me in trouble, but not
enough to have a complete understanding of whats actually happening.
Plus all the lists I made previously only used
Single selection and I was able to get the selection I needed from a
selectionChanged method. I also figured out how to set the selection of
a ListView programmatically with not too much trouble. However where I
am stuck, is trying to figure out how to access what row information
based off of whats selected or not selected in its related listview
Here is what I plan on doing in my button logic
1. newItemModel = existingItemModel()
2. for rowInt in range(existingModel.rowCount):
3. rowIndex = existingModel.index(rowInt, 0)
4. if rowIndex not in listView.selectedIndexes():
Where I think I am getting hung up is on row 3 or 4, because I don't'
know if that maintains a 1 to 1 relation ship between the QModelIndex
item created by the index() method and the QModelIndex item that is
created from the selectedIndex() method. Again, like I said, I know
enough to get in trouble. This could be an entirely wrong approach.
So not sure what to do actually, so any advice on the matter would be
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the PyQt