如何将 QSpinBox 添加到 QTableWidget?
how to add QSpinBox to a QTableWidget?
我有一个 QTableWidget 和一个名为 p
的 class 产品对象。
我想向此 table 添加项目。
我尝试了下面的代码但没有用。
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);
}
我该怎么办?
QTableWidget
应该定义了 rowCount
和 columnCount
属性。它可以通过 QTableWidget
构造函数(https://doc.qt.io/qt-5/qtablewidget.html#QTableWidget-1)或通过适当的方法(setRowCounts
和 setColumnCounts
)来完成。如果已经完成了,那就太好了。
insertRow
在给定位置的 table 中插入一个空行。 ui->tableWidget->insertRow(1)
仅当您之前定义了 rowCount
和 columnCount
时才会在位置 1
插入一个新行(参见第 1 点)。
- 这取决于您的想法 - 如果您希望至少有 4 列(请注意我们从 0 开始计数并且
QSpinBox
试图放入第三列)并插入新产品总是在第一行,你的第 1 点 fullfilled 的代码可以正常工作。但是,如果您的想法是每次添加新 product
时都添加一个新行,您应该调用 ui->tableWidget->insertRow(tableWidget->rowCount())
并使用该值来寻址适当的行。
您可能还想在这里查看如何设置 QTableWidget
:https://wiki.qt.io/How_to_Use_QTableWidget
我有一个 QTableWidget 和一个名为 p
的 class 产品对象。
我想向此 table 添加项目。
我尝试了下面的代码但没有用。
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);
}
我该怎么办?
QTableWidget
应该定义了rowCount
和columnCount
属性。它可以通过QTableWidget
构造函数(https://doc.qt.io/qt-5/qtablewidget.html#QTableWidget-1)或通过适当的方法(setRowCounts
和setColumnCounts
)来完成。如果已经完成了,那就太好了。insertRow
在给定位置的 table 中插入一个空行。ui->tableWidget->insertRow(1)
仅当您之前定义了rowCount
和columnCount
时才会在位置1
插入一个新行(参见第 1 点)。- 这取决于您的想法 - 如果您希望至少有 4 列(请注意我们从 0 开始计数并且
QSpinBox
试图放入第三列)并插入新产品总是在第一行,你的第 1 点 fullfilled 的代码可以正常工作。但是,如果您的想法是每次添加新product
时都添加一个新行,您应该调用ui->tableWidget->insertRow(tableWidget->rowCount())
并使用该值来寻址适当的行。
您可能还想在这里查看如何设置 QTableWidget
:https://wiki.qt.io/How_to_Use_QTableWidget