Добавить строку в QTableWidget если ее еще нет

140
20 июня 2019, 06:50

Моя программа должна постепенно выводить результаты вычислений в ячейки таблицы. Есть окно (реализовано как объект класса Widget, наследованного от QWidget), у этого объекта есть свойство r_table (указатель на QTableWidget) - эта самая таблица.

Сколько строк понадобится, заранее неизвестно, поэтому я хочу чтобы они добавлялись по мере необходимости.

Нужен метод

void Widget::setTableValue(int i, int j, double value)

который ставит число value в ячейку с номером строки i и номером столбца j, а если строки i нет, то создает ее.

Как такое реализовать?

Попытался сделать вот так

void Widget::setTableValue(int i, int j, double value)
{
    while (r_table->rowCount() < i)
        r_table->insertRow(r_table->rowCount());
    r_table->setItem(i, j, new QTableWidgetItem(QString::number(value, 'g', 2)));
}

но он заполняет таблицу как попало.

Answer 1

Вот так

void Widget::setTableValue(int i, int j, double value)
{
    if (r_table->rowCount() <= i)
        r_table->setRowCount(i + 1);
    r_table->setItem(i, j, new QTableWidgetItem(localeRus->toString(value, 'g', 4)));
}

localeRus - объект QLocale с русской локалью, чтобы десятичный разделитель был запятая.

READ ALSO
Подготовка Qt Creator к работе с OpenNI

Подготовка Qt Creator к работе с OpenNI

Мне нужна ваша, сообщество помощь в настройке Qt Creator для написания программы, которая будет работать с фреймворком OpenNI (https://structureio/openni)

132
Где сейчас активно используется с++? [закрыт]

Где сейчас активно используется с++? [закрыт]

Изучив основные структуры данных и базовые алгоритмы и испытав их на практике, столкнулся с проблемой - куда двигаться дальшеХочется узнать...

105
Не считывает .txt c++ [закрыт]

Не считывает .txt c++ [закрыт]

C++17 - VisualStudio 2017 Хотел написать свою программу, чтобы попрактиковатьсяСуть программы в том, чтобы взять имена файлов в папке(через регулярку),...

107
Сортировка четных и нечетных элементов c++

Сортировка четных и нечетных элементов c++

Есть задача: В одномерном массиве, состоящем из n вещественных элементов, вычислить:

337