IF
Igor FedyaevAug. 9, 2017, 7:16 a.m.

2D Графика в Qt

QT, QGraphicsView, C++

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

https://evileg.com/post/275/

У меня возник вопрос такого плана:

1.И правильно ли я понял как реализуется данная операция отрисовки?
2.как это реализовать в QGraphicsView(QGW)?
3.Как увязывать координаты моей сцены отрисовки с координатами и значениями моих графиков?

Заранее спасибо!



We recommend hosting TIMEWEB
We recommend hosting TIMEWEB
Stable hosting, on which the social network EVILEG is located. For projects on Django we recommend VDS hosting.

Do you like it? Share on social networks!

3
Evgenii Legotckoi
  • Aug. 10, 2017, 3:43 a.m.

День добрый!


  1. По этом вопросу ничего Вам не скажу, поскольку Вы не описали своего видения этой проблемы отталкиваясь от статьи, то есть не высказали своего мнения, по которому я мог бы судить, правильно ли Вы понимаете задачу и её решение.
  2. Что касается реализации в QGraphicsView, то придётся рисовать с нуля все линии, все направляюшие, всю сетку. В QGraphicsView система координат работает следующим образом: левый верхний угол сцены обычно имеет координату (0, 0). Если двигаться вправо от этой координаты, то получаем положительные значения по оси X, если двигаться вниз от этой координаты, то полчучаем положительные значения по оси Y. Таким образом необходимо отрисовать все направляющие и коориднатные сетки, учесть возможность изменения размеров области графика при изменении размеров окна и т.д.
  3. Чтобы увязать координаты отрисовки графика со значениями графиков, необходимо отталкивать от координат осей графика. Допустим, это будут линии с определённым координатами на QGraphicsScene, вот от их положения на графике и их репрезентации масштаба значений необходимо пересчитывать реальные значения графика в координаты на QGraphicsView.
Работы по реализации своих графиков в данном случае достаточно много, но это вполне реализуемо. Нужно будет наследдоваться от QGraphicsScene и реализовывать в этом классе свою собственную отрисовку. По объему не скажу, но точно не менее пары тысяч строк кода будет.
    IF
    • Aug. 10, 2017, 6:03 a.m.

    Вопрос проще
    как передать в QGraphicsView(созданного в Форме(под названием graphicsView)) -> QChartView *view?
    ui->graphicsView->???????

      Evgenii Legotckoi
      • Aug. 10, 2017, 7:17 a.m.

      Тогда в QGraphicsView нужно установить графическую сцену QGraphicsScene. Это с помощью метода QGraphicsView::setScene() делается. А вот уже графическая сцена имеет метод addWidget(), с помощью которого можно добавлять виджеты (а QChartView является виджетом как раз) можно уже добавлять чарты. Вообще, я этим методом ни разу не пользовался, не было нужды в таком. Но полагаю, что это как раз то что нужно в данном контексте. Так будет создан QGraphicsProxyWidget, вот тут уже не знаю, что дальше делать. Поскольку встаёт вопрос о позиционировании графика на графической сцене.

      Возможно есть и более проавильное решение без использования QGraphicsView, но нужно уточнять контекст применения и идеи.

        Comments

        Only authorized users can post comments.
        Please, Log in or Sign up
        AD

        C ++ - Test 004. Pointers, Arrays and Loops

        • Result:50points,
        • Rating points-4
        m

        C ++ - Test 004. Pointers, Arrays and Loops

        • Result:80points,
        • Rating points4
        m

        C ++ - Test 004. Pointers, Arrays and Loops

        • Result:20points,
        • Rating points-10
        Last comments
        i
        innorwallNov. 14, 2024, 12:07 p.m.
        Circuit switching and packet data transmission networks Angioedema 1 priligy dapoxetine
        i
        innorwallNov. 14, 2024, 11:42 a.m.
        How to Copy Files in Linux If only females relatives with DZ offspring were considered these percentages were 23 order priligy online uk
        i
        innorwallNov. 14, 2024, 9:09 a.m.
        Qt/C++ - Tutorial 068. Hello World using the CMAKE build system in CLion ditropan pristiq dosing With the Yankees leading, 4 3, Rivera jogged in from the bullpen to a standing ovation as he prepared for his final appearance in Chicago buy priligy pakistan
        i
        innorwallNov. 14, 2024, 4:05 a.m.
        EVILEG-CORE. Using Google reCAPTCHA 2001; 98 29 34 priligy buy
        i
        innorwallNov. 14, 2024, 4 a.m.
        PyQt5 - Lesson 007. Works with QML QtQuick (Signals and slots) priligy 30mg Am J Obstet Gynecol 171 1488 505
        Now discuss on the forum
        i
        innorwallNov. 14, 2024, 3:39 a.m.
        добавить qlineseries в функции priligy amazon canada 93 GREB1 protein GREB1 AB011147 6
        i
        innorwallNov. 11, 2024, 10:55 a.m.
        Всё ещё разбираюсь с кешем. priligy walgreens levitra dulcolax carbs The third ring was found to be made up of ultra relativistic electrons, which are also present in both the outer and inner rings
        9
        9AnonimOct. 25, 2024, 9:10 a.m.
        Машина тьюринга // Начальное состояние 0 0, ,<,1 // Переход в состояние 1 при пустом символе 0,0,>,0 // Остаемся в состоянии 0, двигаясь вправо при встрече 0 0,1,>…

        Follow us in social networks