Qt 是否可以将QCOMBOX复制到另一个QCOMBOX

Qt 是否可以将QCOMBOX复制到另一个QCOMBOX,qt,pyqt,qt-designer,qcombobox,Qt,Pyqt,Qt Designer,Qcombobox,我使用Qt设计器构建我的UI布局。在布局上,我有一个名为cb\u fac\u cd的组合框。在我的代码中,我有一个函数,它将根据我试图构建的列表自动构建一个组合框。我在数据库中定义了很多这样的列表,这个函数会弹出一个QComboBox 不幸的是,到目前为止,我只使用此函数将cellWidgets添加到QTableWidgets。它在那里工作得很好。现在我想填充这个预先存在的组合框 这似乎是一个简单的问题 self.ui.cb\u fac\u cd=makeComboBox(“设施”)不工作。我可

我使用Qt设计器构建我的UI布局。在布局上,我有一个名为
cb\u fac\u cd
的组合框。在我的代码中,我有一个函数,它将根据我试图构建的列表自动构建一个组合框。我在数据库中定义了很多这样的列表,这个函数会弹出一个QComboBox

不幸的是,到目前为止,我只使用此函数将cellWidgets添加到QTableWidgets。它在那里工作得很好。现在我想填充这个预先存在的组合框

这似乎是一个简单的问题
self.ui.cb\u fac\u cd=makeComboBox(“设施”)
不工作。我可以看到该函数像往常一样返回QComboBox,但是cb_fac_cd组合框仍然没有填充

如何将返回的组合框复制或分配给内置的Qt设计器


我正在使用PyQt,但这不会有任何区别。

据我所知,您不能替换由Qt的UIC机制生成的.h文件中的对象(尽管我现在无法100%确认)

在这种情况下,我通常会在ui文件中设置一个空布局,然后执行以下操作: (注意,我使用的是Qt/C++语法,因为我不知道pyqt语法,但我想您会明白的)


另外,如果可能的话,考虑使用枚举,而不是使用MaKeCoMBOX函数的字符串。这通常更快更安全。

听起来你也应该这样做

  • 将makeComboBox更改为populateComboBox(QComboBox*p),并将布局中的combobox传递给它以填充,或者
  • 动态创建QComboBox并将其添加到布局中,然后将其从.ui中删除

  • 您可以将Ui中的模型更改为从其他组合框中获得的模型:

    tempCombo = makeComboBox( "FACILITIES" )
    self.ui.cb_fac_cd.setModel(tempCombo.model())
    

    但对于这一部分:

    我在数据库和这个函数中定义了很多这样的列表 吐出一个QComboBox。不幸的是,到目前为止,我只使用这个函数来添加 cellWidgets到QTableWidgets


    如果数据来自数据库,您可能希望查看以避免手动执行此操作。

    更多代码将有助于找到问题。将组合框传递到此函数的位置?组合框在哪里填充?
    tempCombo = makeComboBox( "FACILITIES" )
    self.ui.cb_fac_cd.setModel(tempCombo.model())