代码之家  ›  专栏  ›  技术社区  ›  Starlays

将QTableView添加到QComboBox

  •  1
  • Starlays  · 技术社区  · 7 年前

    我发现可以连接结果并填充QComboBox,但这将使我的每一行只有一个值,我必须分解字符串以获得需要处理的确切部分。

    1 回复  |  直到 6 年前
        1
  •  2
  •   eyllanesc Yonghwan Shin    7 年前

    默认情况下出现的弹出窗口是 QListView QAbstractItemView ,在这种情况下 QTableView 将用于它使用 setView() setModelColumn() 指示列的位置,但在此之前,使用该方法将模型设置为QComboBox setModel() .

    # my model
    model = new QSqlTableModel;
    model->setTable("person");
    model->select();
    # setModel
    comboBox->setModel(model);
    # select column
    comboBox->setModelColumn(1);
    
    QTableView  *view = new QTableView(this);
    comboBox->setView(view);
    

    注: 模型设置为QComboBox,而不是QTableView。此外,您可能会遇到QTableView的宽度问题,因此我们必须调整大小,在我的情况下,请使用以下方法:

    view->horizontalHeader()->setSectionResizeMode(QHeaderView::Stretch);
    view->setMinimumWidth(500);
    

    link