[PyQt]  QComboBox: display text but pass on Unique Id (MySql)

David Boddie david at boddie.org.uk
Tue Nov 8 22:38:20 GMT 2011


On Fri, 4 Nov 2011 13:51:45 +0000, Cristobal Infante wrote:

> My first post in this list, a big hello to everyone :D

Welcome!

> I am just starting with Pyqt but have enough experience with python.
>
> I am connecting a Mysql Databse nicely, being able to retrieve the complete
> table and
> get it as a model. I've then been able to display in a combobox a "Name"
> column
> just by using 'setcolumn(1).

OK. So far so good.

> Until here is all good, but is passing the Id from that record that's
> proven hard to crack for me.
> I've been looking around in the net, but havent been able to find an
> example using a database.
> So display "Jane" put pass on the unique ID of that record.

Just an idea: is the record() method of the model what you want? The model
should inherit this from QSqlQueryModel.record().

> I have an 'activated' function that is being executed everytime the combo
> changes, but at the moment it's only retrieving
> info from that column that's displayed in the combobox.

You can get the corresponding row of the item displayed in the combo box
by calling the QComboBox.currentIndex() method. This is effectively the
same as the row in the model, anyway. Then pass it to the model's record()
method and see what you get.

Does that work?

David


More information about the PyQt mailing list