QLineEdit を作成し、バリデーターを設定して、次のコードでテーブルに配置します。
ui->moneyTableWidget->setCellWidget(rowsNum, 1, newQLineEdit);
次に、テーブルのデータを操作して列のすべての値の合計を計算する別のクラスを用意しました。コードは次のとおりです。
int Calculator::calculatePricesSum(QTableWidget &moneyTableWidget){
double total = 0;
QWidget *tmpLineEdit;
QString *tmpString;
for(int row=0; row<moneyTableWidget.rowCount(); row++){
tmpLineEdit = (QLineEdit*)moneyTableWidget.cellWidget(row,1);
tmpString = tmpLineEdit.text();
total += tmpString->toDouble();
}
return total;
}
しかし、建物はこのエラーで失敗します:
/home/testpec/src/nokia QT/MoneyTracker-build-simulator/../MoneyTracker/calculator.cpp:11: エラー: 割り当てで「QLineEdit*」を「QWidget*」に変換できません
この変換エラーはなぜですか?
別のサブ質問: テーブルを参照として渡すと、メモリが節約されますか? これが問題でしょうか?Nokiaスマートフォン用に開発していますが、オブジェクトを値で渡すのはメモリの無駄だと思います...(ばかげた質問で申し訳ありませんが、C ++とすべてのポインターに少し慣れていません...)