2015-10-16 55 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)) 
相關問題