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()