М
Миша23 листопада 2017 р. 09:11

Как очистить виджет и построить новый график

QCustomPlot

Здравствуйте.

Строю с помощью  QCustomPlot на виджите график. Как очистить  виджет и построить новый график?
Рекомендуємо хостинг TIMEWEB
Рекомендуємо хостинг TIMEWEB
Стабільний хостинг, на якому розміщується соціальна мережа EVILEG. Для проектів на Django радимо VDS хостинг.

Вам це подобається? Поділіться в соціальних мережах!

18
Evgenii Legotckoi
  • 24 листопада 2017 р. 06:34

Насколько помню, я хранил указатели на сами графики и перестраивал их, ну и соответственно делал update виджета, чтобы он перерисовался.

    М
    • 24 листопада 2017 р. 08:05

    Сделал так, заработало

    ui->customPlot->close();//закрывает виджет
    ui->setupUi(this);  //открывает виджет
    
      Evgenii Legotckoi
      • 24 листопада 2017 р. 08:32

      Грубый костыль, но ваше право

        М
        • 29 листопада 2017 р. 08:00

        Но у меня много графиков, их количество меняется со временем. Нет ли возможности очистить QCustomPlot или быть может закрыть его и открыть заново? Обновляли виджет функцией replot?

          Evgenii Legotckoi
          • 29 листопада 2017 р. 08:06

          Если вам нужно убрать график, то его нужно удалить из QCustomPlot. Для этого есть метод QCustomPlot::removeGraph().

          В документации я нашёл два вариант этой функции. Первый удаляет по указателю на график, второй по индексу.
          Вам нужно знать либо указатель на грфик который хотите удалить, либо его индекс.
          После удаления скорее всего придётся применить replot()
            М
            • 29 листопада 2017 р. 08:22

            Будет ли

            QCustomPlot :: clearGraphs()
            удалять все графики?
              Evgenii Legotckoi
              • 29 листопада 2017 р. 08:24
              • (відредаговано)

              В документации написано, что будет удалять все графики.

                М
                • 29 листопада 2017 р. 08:30

                Обычные графики так удаляются, но не могу удалить

                QCPFinancial *candlesticks = new QCPFinancial(ui->customPlot->xAxis, ui->customPlot->yAxis);
                    candlesticks->setName("Candlestick");
                  М
                  • 29 листопада 2017 р. 08:33
                  ui->customPlot->removeGraph(*candlesticks) выдает ошибку
                    Evgenii Legotckoi
                    • 29 листопада 2017 р. 08:35

                    Используйте этот метод

                    QCustomPlot::clearPlottables()
                      М
                      • 29 листопада 2017 р. 08:57

                      Спасибо. Так графики удаляются. Но оси остаются. На одном из моих графиков больше осей, нежели на другом и эти лишние оси отображаются пустыми.

                        Evgenii Legotckoi
                        • 29 листопада 2017 р. 09:00
                        QCustomPlot::clearItems()
                          М
                          • 29 листопада 2017 р. 09:36

                          оси все равно остаются.

                            М
                            • 29 листопада 2017 р. 09:37

                            вернее даже 2 координатные плоскости

                              М
                              • 29 листопада 2017 р. 09:46

                              Можно ли удалить старый интерфейс?

                                М
                                • 29 листопада 2017 р. 09:47

                                или может быть сделать построение графиков в разных окнах, чтобы не было нужды удалять оси?

                                  Evgenii Legotckoi
                                  • 29 листопада 2017 р. 16:52

                                  Вот сейчас я не понимаю, что вас так коробит наличие пары дефолтных осей.
                                  А по поводу разных окон скажу так, проект ваш и здесь точно вам решать в окнах делать, в MDI Area, или ещё где-то.

                                    М
                                    • 30 листопада 2017 р. 00:20

                                    Так как при таком варианте сначала график отображается весьма извращенно. Масштаб остается от предыдущего. команды rescaleAxes,replot не помогают добиться адекватного изображения (рисунок 1). Только при начале перетаскивания и при работе лямбды график перестраивается до адекватного(рисунок 2). Также вторая ось конечно не мешает, но и не является нужной.

                                      Коментарі

                                      Only authorized users can post comments.
                                      Please, Log in or Sign up
                                      d
                                      • dsfs
                                      • 26 квітня 2024 р. 04:56

                                      C++ - Тест 004. Указатели, Массивы и Циклы

                                      • Результат:80бали,
                                      • Рейтинг балів4
                                      d
                                      • dsfs
                                      • 26 квітня 2024 р. 04:45

                                      C++ - Тест 002. Константы

                                      • Результат:50бали,
                                      • Рейтинг балів-4
                                      d
                                      • dsfs
                                      • 26 квітня 2024 р. 04:35

                                      C++ - Тест 001. Первая программа и типы данных

                                      • Результат:73бали,
                                      • Рейтинг балів1
                                      Останні коментарі
                                      k
                                      kmssr08 лютого 2024 р. 18:43
                                      Qt Linux - Урок 001. Автозапуск програми Qt під Linux как сделать автозапуск для флэтпака, который не даёт создавать файлы в ~/.config - вот это вопрос ))
                                      АК
                                      Анатолий Кононенко05 лютого 2024 р. 01:50
                                      Qt WinAPI - Урок 007. Робота з ICMP Ping в Qt Без строки #include <QRegularExpressionValidator> в заголовочном файле не работает валидатор.
                                      EVA
                                      EVA25 грудня 2023 р. 10:30
                                      Boost - статичне зв&#39;язування в проекті CMake під Windows Ошибка LNK1104 часто возникает, когда компоновщик не может найти или открыть файл библиотеки. В вашем случае, это файл libboost_locale-vc142-mt-gd-x64-1_74.lib из библиотеки Boost для C+…
                                      J
                                      JonnyJo25 грудня 2023 р. 08:38
                                      Boost - статичне зв&#39;язування в проекті CMake під Windows Сделал всё по-как у вас, но выдаёт ошибку [build] LINK : fatal error LNK1104: не удается открыть файл "libboost_locale-vc142-mt-gd-x64-1_74.lib" Хоть убей, не могу понять в чём дел…
                                      G
                                      Gvozdik18 грудня 2023 р. 21:01
                                      Qt/C++ - Урок 056. Підключення бібліотеки Boost в Qt для компіляторів MinGW і MSVC Для решения твой проблемы добавь в файл .pro строчку "LIBS += -lws2_32" она решит проблему , лично мне помогло.
                                      Тепер обговоріть на форумі
                                      IscanderChe
                                      IscanderChe30 квітня 2024 р. 04:22
                                      Во Flask рендер шаблона не передаётся в браузер Доброе утро! Имеется вот такой шаблон: <!doctype html><html> <head> <title>{{ title }}</title> <link rel="stylesheet" href="{{ url_…
                                      G
                                      Gar22 квітня 2024 р. 05:46
                                      Clipboard Как скопировать окно целиком в clipb?
                                      DA
                                      Dr Gangil Academics20 квітня 2024 р. 07:45
                                      Unlock Your Aesthetic Potential: Explore MSC in Facial Aesthetics and Cosmetology in India Embark on a transformative journey with an msc in facial aesthetics and cosmetology in india . Delve into the intricate world of beauty and rejuvenation, guided by expert faculty and …
                                      a
                                      a_vlasov14 квітня 2024 р. 06:41
                                      Мобильное приложение на C++Qt и бэкенд к нему на Django Rest Framework Евгений, добрый день! Такой вопрос. Верно ли следующее утверждение: Любое Android-приложение, написанное на Java/Kotlin чисто теоретически (пусть и с большими трудностями) можно написать и на C+…
                                      Павел Дорофеев
                                      Павел Дорофеев14 квітня 2024 р. 02:35
                                      QTableWidget с 2 заголовками Вот тут есть кастомный QTableView с многорядностью проект поддерживается, обращайтесь

                                      Слідкуйте за нами в соціальних мережах