2015-10-16 80 views
0

QsqlRelationalTableModel中,如果设置了包含外键的列的关系,则外键将被解析为可读的字符串。在我的应用程序站点解析为站名。如何获取具有在QSqlRelationalTableModel中设置的关系的列的索引值?

出于某种目的,我也需要stationid。 QsqlRelationalTableModel.data()QsqlRelationalTableModel.itemData()只返回displayValue(用于displayrole以及editrole)。我怎样才能得到相应的外键(indexValue)?

回答

0

QsqlRelationalTableModel.relationModel()返回一个QSqlTableModel对象,用于访问列为外键的表。

http://doc.qt.io/qt-5/qsqlrelationaltablemodel.html#relationModel

通过的relationModel()相应的ID(indexValue)的setFilter()方法可以发现,如果displayValue是唯一的:

rm = self.relationModel(2) 
f = '<columnname> = "{}"'.format(<displayvalue>) 
rm.setFilter(f) 
id = rm.data(rm.index(0,0)) 
相关问题