не могу получить значение ячейки в QTableWidget

128
06 февраля 2021, 20:00

имеется таблица,необходимо было сделать ввод в ячейки только double:

m_doubleValidator.setNotation(QDoubleValidator::StandardNotation); //стандартная нотация
for (int j = 1; j < ui->SG_Uvn->columnCount(); j++)
    for (int i = 1; i <= ui->SG_Uvn->rowCount(); i++) {
        QLineEdit * tableline = new QLineEdit;
        tableline->setValidator( &m_doubleValidator );
        ui->SG_Uvn->setCellWidget(j, i, tableline);
    }

Дальше я пытался получить значение ячейки так :

SG_Current->item(i, j)->text();

Но т.к ячейка пустая(хотя в форме она заполнена) вылетает ошибка. Я понимаю что теперь в ячейки таблицы у меня находится не QTableWidgetItem, а QLineEdit.

Так вот как же теперь получить значение этого QLineEdit?

Answer 1

Надо делать симметрично.

Установить:

QLineEdit* edt = new QLineEdit();
//...
tableWidget->setCellWidget(row, column, edt)

Получить:

QLineEdit* w = qobject_cast<QLineEdit*>(tableWidget->cellWidget(row, col));
if( w != Q_NULLPTR ) {
    w->text();
}
READ ALSO
Как написать for_each parallel для std::map?

Как написать for_each parallel для std::map?

мне необходимо многопоточно обработать элементы std::mapc++ 17 для это есть for_each parallel, но я работаю на C++ 14

90
Сортировка столбцов матрицы

Сортировка столбцов матрицы

Задание звучит так:

93
Выравнивание дивов

Выравнивание дивов

На странице нужно поместить два дива рядом в один контейнерКаждый див имеет фиксированную ширину, но правый див может скрываться и нужно,...

110
Получить html сайта

Получить html сайта

На Go написал функцию для того чтобы получать html сайтов по url:

105