无法在QTableWidget中嵌入QComboBox

时间:2014-04-21 20:37:37

标签: c++ qt

我正在使用QT制作GUI,并且我希望我的表中的最后一个条目是一个组合框。我们的想法是允许用户从下拉列表中选择要放入表格的新项目。

我似乎遇到的问题是将此组合框嵌入表格单元格中。我试过这个:

      table_widget = new QTableWidget(1, 9, Dialog);
      table_widget->setObjectName(QStringLiteral("table_widget"));

      add_part_combo = new QComboBox(table_widget);
      add_part_combo->setObjectName(QStringLiteral("add_part_menu"));
      add_part_combo->addItem(QStringLiteral("Import New Items..."));
      table_widget->setCellWidget(1, 1, add_part_combo);

如果我使用Dialog构造组合框,它会将组合框放在对话框的左上角(有些表下)。如果我用table_widget构造它,组合框将出现在表格的左上角(在第一个标题单元格的顶部)。如果我不提供父窗口小部件,那么它根本不会出现。

但在任何情况下,小部件实际上都不会出现在单元格1,1中。

我做错了什么?

1 个答案:

答案 0 :(得分:1)

传递给row的{​​{1}}和column参数为零索引。此外,您无需为setCellWidget提供父级,因为QComboBox会在您致电QTableWidget时承担其所有权。因此,您的代码应如下所示:

setCellWidget