Форум программистов, компьютерный форум, киберфорум
C++ Qt
Войти
Регистрация
Восстановить пароль
 
2 / 2 / 0
Регистрация: 22.09.2013
Сообщений: 200
1

Повторная отрисовка в QChart

22.05.2020, 13:58. Просмотров 120. Ответов 0
Метки нет (Все метки)

Добрый день.
Сделал отрисовку в Qchart 4 графиков:

C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
void DrawGraph(const GraphsData* data)
{
    m_series_1->clear();
    m_series_2->clear();
    m_series_3->clear();
    m_series_4->clear();
 
    std::size_t data_len = data->channel_1.size();
 
    float ymax = std::numeric_limits<float>::min();
    float ymin = std::numeric_limits<float>::max();
 
    if(m_channels_status.channel_1 && !data->channel_1.empty())
    {
        for(std::size_t i=0; i<data_len; ++i)
        {
            m_series_1->append(static_cast<double>(i), static_cast<double>(data->channel_1[i]));
            ymin = std::min(ymin, data->channel_1[i]);
            ymax = std::max(ymax, data->channel_1[i]);
        }
    }
    if(m_channels_status.channel_2 && !data->channel_2.empty())
    {
        for(std::size_t i=0; i<data_len; ++i)
        {
            m_series_2->append(static_cast<double>(i), static_cast<double>(data->channel_2[i]));
            ymin = std::min(ymin, data->channel_2[i]);
            ymax = std::max(ymax, data->channel_2[i]);
        }
    }
    if(m_channels_status.channel_3 && !data->channel_3.empty())
    {
        for(std::size_t i=0; i<data_len; ++i)
        {
            m_series_3->append(static_cast<double>(i), static_cast<double>(data->channel_3[i]));
            ymin = std::min(ymin, data->channel_3[i]);
            ymax = std::max(ymax, data->channel_3[i]);
        }
    }
    if(m_channels_status.channel_4 && !data->channel_4.empty())
    {
        for(std::size_t i=0; i<data_len; ++i)
        {
            m_series_4->append(static_cast<double>(i), static_cast<double>(data->channel_4[i]));
            ymin = std::min(ymin, data->channel_4[i]);
            ymax = std::max(ymax, data->channel_4[i]);
        }
    }
}
Данные у меня: 4 канала по 2048 отсчетов, рисовать хочу раз в 20-50мс.
Когда в отдельном потоке вызывается DrawGraph - в первый раз графики рисуются. Когда вызывается во второй раз - приложение падает, причем не зависимо от таймера (даже с таймером в 500мс)

Добавлено через 17 минут
PS. падает всегда в файле glxyseriesdata.cpp в функции setPoints с выходом за пределы массива array
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
22.05.2020, 13:58
Ответы с готовыми решениями:

Замена QSplineSeries в QChart
Доброго времени суток. Имеется некоторый набор заранее просчитанных QSplineSeries. А так же...

QChart - проблемы с обновлением списка
Добрый день. Если задача построения скользящего графика. Ось X - QDateTimeAxis, ось Y -...

Кастомная серия для QChart
Есть ли возможность создать кастомную серию для QChart? Попытки унаследоваться от QAbstractSeries...

График QChart с динамическими данными
Подскажите, пожалуйста, что я делаю не так :wall: { ui-&gt;setupUi(this); // Создаём...

0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
22.05.2020, 13:58

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

График QChart динамическое обновление и привязка к осям
Здравствуйте. Пытаюсь разобраться с QChart. Создаю график QLineSeries *series_Lq; QLineSeries...

График зависимости температуры от текущего времени, QChart
Добрый день. Хочу построить график зависимости температуры от текущего времени. QChart требует...

Зафиксировать размер QGraphicsItem относительно QGraphicsScene (QChart)
Добрый вечер. Заранее всех благодарю за ответы и излагаю свою проблему. Есть график, основанный на...

QChart нарисовать график и по нажатию кнопки вывести результат на tabWidget
День добрый Необходимо нарисовать график и по нажатию кнопки вывести результат на tabWidget. C...

Повторная загрузка
Есть код по загрузке файла. &lt;form enctype=&quot;multipart/form-data&quot; action=&quot;check.php&quot;...

Повторная авторизация
Здравствуйте! Недавно начал изучать PHP(ну как недавно - поставили перед фактом, что я должен его...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.