PyQt4在QSqlTableModel的select()更新后调整QCombobox

时间:2014-04-17 14:27:55

标签: python pyqt4 qcombobox qsizepolicy

我正在获取模型来更新QCombobox的内容项,但即使我在设置QCombobox小部件时建立了该指令,我似乎无法让组合框调整到内容。模型更新后,组合框保持相同的宽度,并且不会调整以适应文本内容,并且在我重新启动应用程序之前,较长的文本字符串会被截断。如何根据模型的内容动态调整QCombobox的尺寸?

这是组合框:

def build(self):
    self.comboStns = QComboBox()
    self.comboStns.setModel(self.model)
    self.comboStns.setModelColumn(self.model.fieldIndex("title"))
    self.layout.addWidget(self.comboStns, 0, 0)
    self.btnAddStn = QPushButton("Add Station")
    self.btnAddStn.clicked.connect(self.openAddStns)
    self.layout.addWidget(self.btnAddStn, 0, 1)
    self.dialogAddStn = StationsDialog(self)

这是更新组合框模型的对话框窗口:

def addStation(self):
    stnMetaName = self.txtStnName.text().toLower()
    stnMetaName = stnMetaName.replace(QRegExp("[\W]+"), "_")
    query = QSqlQuery()
    query.prepare("INSERT INTO stations (meta_name, title) VALUES (:meta, :title)")
    query.bindValue(":meta", stnMetaName)
    query.bindValue(":title", self.txtStnName.text())
    query.exec_()
    # back to the parent window model which hosts the combobox
    self.parent().model.select()
    self.close()

0 个答案:

没有答案