如何从qsombobox中获取选择项数据

2024-09-30 00:24:35 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个基本的组合框,其中填充了来自sqlite3数据库表的数据:

self.langModel = QSqlTableModel(self)
self.langModel.setTable("languages")
self.langModel.setSort(self.langModel.fieldIndex("label"), Qt.AscendingOrder)
self.langModel.select()

...

self.comboLangs = QComboBox()
self.comboLangs.setModel(self.langModel)
self.comboLangs.setModelColumn(self.langModel.fieldIndex("label"))
self.layout.addRow("Language", self.comboLangs)

...

self.btnAdd = QPushButton("Add")
self.btnAdd.clicked.connect(self.addLoc)
self.btnLayout.addWidget(self.btnAdd)

...

def addLoc(self):
    pprint(vars(self.langModel.data(self.langModel.index(self.comboLangs.currentIndex(), self.langModel.fieldIndex("iso")))))

以下是表架构:

^{pr2}$

这只会产生一个空dict {}。如何从QSqlTableModel获取所选/当前项的数据对象?在


Tags: 数据self数据库qtsqlite3labellanguagessettable
1条回答
网友
1楼 · 发布于 2024-09-30 00:24:35

好的,我想知道了(我希望PyQt参考文档能更具体地说明如何做到这一点)。无论如何,为了获得模型数据,我需要将QVariant对象转换为Python对象(toPyObject())或字符串(toString())。在

print self.langModel.data(self.langModel.index(self.comboLangs.currentIndex(), self.langModel.fieldIndex("iso"))).toString()

这给了我需要的数据。在

相关问题 更多 >

    热门问题