C ++ Qt - 设置QTableWidget项值

时间:2016-05-10 23:17:32

标签: c++ qt

我一直在使用Qt中的矩阵计算器并遇到以下问题。我这样做:

void ShowMatrix::updateTable()
{
    int w = 323 - 305;
    int h = 300 - 227 + 15;

    for(int i = 0; i < matrix->getRows(); i++)
    {
        ui->tableWidget->insertRow(i);
        h += 35;
    }
    for(int j = 0; j < matrix->getColumns(); j++)
    {
        ui->tableWidget->insertColumn(j);
        w += 50;
    }

    this->resize(w, h);
    this->setMinimumSize(w, h);

    ui->retranslateUi(this);


    this->setWindowTitle(matrix->getName());
    emit updatingDone();

}

之后,当更新Done();发出信号,启动此插槽:

void ShowMatrix::setValues()
{
    QString str;
    for(int i = 0; i < matrix->getRows(); i++)
        for(int j = 0; j < matrix->getColumns(); j++)
        {
            ui->tableWidget->item(i, j)->setText("1");
        }
    ui->retranslateUi(this);
}

我只想将所有单元格值设置为1。我不能对项目做任何事情,我试图用它们做的一切,如设置标志,值等等。崩溃了我的应用程序。如果我没有发出updatingDone()信号,一切正常。

1 个答案:

答案 0 :(得分:1)

您可以尝试使用此广告位:

Instance member "totalBill" cannot be used on type "Tips"

因此,当您向表格小部件添加新行和/或列时,这些添加的单元格仍为空。因此,您需要首先使用QTableWidget-&gt; setItem将QTableWidgetItem放在这些单元格中。