【发布时间】:2020-07-23 06:07:38
【问题描述】:
我有一个 QTableWidget 和一个名为 p 的类产品对象。
我想将项目添加到此表中。
我尝试了下面的代码,但没有用。
void MainWindow:: add_to_basket (product p){
ui->tableWidget->insertRow(1);
QLineEdit *qle=new QLineEdit();
qle->setText(p.get_name());
ui->tableWidget->setCellWidget(1,1,qle);
QLineEdit *qle1=new QLineEdit();
qle1->setText(QString::number(p.get_price()));
ui->tableWidget->setCellWidget(1,2,qle1);
QSpinBox *qsb=new QSpinBox();
qsb->setValue(p.get_count());
ui->tableWidget->setCellWidget(1,3,qsb);
}
我该怎么办?
【问题讨论】:
-
您正在插入一个空表中的一个不存在的位置。 Qt 使用基于 0 的索引,因此尝试在空表中的位置 1 处插入一行将失败。另外,您确定您已将表格设置为有足够的列吗?使用您当前的代码,它需要有 4 列。我建议您将当前 rowCount 存储在 const 变量
row中,然后调用insertRow(row)并使用相同的row变量进行 setCellWidget 调用。
标签: qt qwidget qtablewidget qlineedit qspinbox