【发布时间】:2011-02-09 16:00:57
【问题描述】:
我创建了一个 QLineEdit,设置了一个验证器并使用以下代码将其放在桌子上:
ui->moneyTableWidget->setCellWidget(rowsNum, 1, newQLineEdit);
然后我有 another 类来操作表的数据,对列的每个值进行求和。代码如下:
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/诺基亚 QT/MoneyTracker-build-simulator/../MoneyTracker/calculator.cpp:11: 错误:无法将“QLineEdit*”转换为 分配中的‘QWidget*’
为什么会出现这种转换错误?
另一个子问题:将表作为引用传递可以节省内存,对吗?这可能是问题吗?我正在为诺基亚智能手机开发,我认为按值传递对象是浪费内存......(对不起,如果这是一个愚蠢的问题,但我对 C++ 和所有指针的东西有点生疏......)
【问题讨论】:
标签: c++ qt qtablewidget qlineedit