2013-07-26 3 views
0

У меня есть Qtablewidget и сигнал cellchanged(), который вызывает Slot Change();convert qtablewidget item to float

setup_ui->tableWidget->setRowCount(1); 
setup_ui->tableWidget->setColumnCount(2); 
QTableWidgetItem *item = new QTableWidgetItem("Gain"); 
setup_ui->tableWidget->setHorizontalHeaderItem(0,item); 
QTableWidgetItem *item1 = new QTableWidgetItem("Offset"); 
setup_ui->tableWidget->setHorizontalHeaderItem(1,item1); 

Однако я не мог преобразовать Клетка отредактированное значение всплывать, что-то вроде

setup_ui->tableWidget->item(0,0)->float(); 

Пожалуйста, помогите,

+0

можно добавить код о создании, связи и так далее ... –

+0

мне нужно назначить отредактированный текст ячейки от tablewidget плавают переменной. Я попробовал reinterpret_cast & (setup_ui-> tableWidget-> item (0,0) -> float()), но это не работает – user2618994

+0

Надеюсь, мой ответ поможет –

ответ

3

, что вам нужно в пазу

Class::Change(int row, int column) { 
    bool ok 
    float value = setup_ui->tableWidget->item(row, column)->text().toFloat(&ok); 
    if (ok) { 
    // do whatever with value 
    } 
    else { 
    // do some error handling 
    } 
} 

Вы можете пропустить флаг (bool ok), если вы можете гарантировать, что преобразование никогда не сработает!

Для получения дополнительной информации, публикуйте код ...

+0

Большое вам спасибо, но он дает ошибку "" База операнд -> указатель имеет не указательный тип Qstring "" – user2618994

+0

Я исправил его - text() возвращает QString, поэтому вам нужно '.' вместо' -> ' –

+0

Я тоже пробовал, но приложение зависает в этот момент, когда я попробовал использовать режим отладки. – user2618994