我正在使用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中。
我做错了什么?
答案 0 :(得分:1)
传递给row
的{{1}}和column
参数为零索引。此外,您无需为setCellWidget
提供父级,因为QComboBox
会在您致电QTableWidget
时承担其所有权。因此,您的代码应如下所示:
setCellWidget