PyQt4 Настройте QCombobox после обновления select() из QSqlTableModel

Я получаю модель для обновления элементов содержимого 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 ответов

Другие вопросы по тегам