0
QtでMatrix Calculatorを使用していて、問題が発生しました。私はこれを行う:C++ Qt - QTableWidgetアイテムの値を設定する
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();
}
その後、更新するときに();シグナルが放射されると、このスロットが起動します:
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()
シグナルを出さなければ、すべて正常に動作します。
すべての行と列が正しく追加されています。私は行数を使用しませんが、matrix-> getRows()は0を返しません。どのように私は知っていますか? QTableWidgetはすべての列と行で正しく生成されますが、それらは空です。私がこの行をコメントアウトした場合: ui-> tableWidget-> item(i、j) - > setText( "1"); すべて正常に動作しますが、フィールドは空です。 – MindRoller
上記のupdateTableを無視し、私のスロットを試してください – Apin
私はあなたのソリューションを試してみましたが、それは動作しますが、理由を説明できますか?私が言ったように、行と列は正しく作成されていましたが、値を設定できませんでした。なぜこのように動作しないのか分かりません。 – MindRoller