Qt Graphs. Building 2d plot using c++ only.
-
Note: The Qt Charts module is in the maintenance phase. For new projects, consider using the Qt Graphs module. To render 2D charts, QtGraphs uses Qt Quick Shapes, which is a more modern GUI technology compared to the outdated Qt Graphics View Framework used by the Qt Charts module.
( https://doc.qt.io/qt-6/qtcharts-index.html )You said you don't want to deal with QML, but in the future the backend and how Graphs are rendered will be QML even in C++ use cases.
@Vernat said in Qt Graphs. Building 2d plot using c++ only.:
QValueAxis from the charts is not the same as QValueAxis from the graphs.
What is different?
Make your own axis?!I hope it will be fixed
I don't think they will revert "improvements" to where it was before in QtChart with GraphicsView backend/rendering.
-
Damn @Pl45m4, idk why you're being so rude. I found this thread quite helpful because the Qt documentation on this topic is very confusing. The charts page says
Note: The Qt Charts module is in the maintenance phase. For new projects, consider using the Qt Graphs module. To render 2D charts, QtGraphs uses Qt Quick Shapes, which is a more modern GUI technology compared to the outdated Qt Graphics View Framework used by the Qt Charts module.
Then looking at QtGraphs docs, you just get a bunch of QML source. There's nothing mentioning that 2d charts/graphs are still using the old system.
-
Where I was rude?!
BTW: Exactly that bit you quoted from the documentation, I've linked and quoted above already ;-)
It is the way it is... the new QtGraphs module uses a QML backend for rendering, even when you use its C++ / QtWidget API -
@Pl45m4 said in Qt Graphs. Building 2d plot using c++ only.:
Where I was rude?!
You were not rude anywhere, only helpful/to the point. Maybe @SandSnip3r misread or misunderstood.
-
Maybe I misunderstood.
Sorry, I'm still having trouble understanding how to use a 2d "QtGraph" from C++. You said "the new QtGraphs module uses a QML backend for rendering, even when you use its C++ / QtWidget API." That's fine, but how do you construct & interact with a 2d "Qt Graph" (which uses a "QML backend")?
I see that there are C++ classes for Qt Graphs, like https://doc.qt.io/qt-6/qlineseries.html, but this seems to just be a class which represents data? What's the C++ class which I use as the view? Is there some QWidget-based class which I'd then add the series to?
-
@SandSnip3r said in Qt Graphs. Building 2d plot using c++ only.:
What's the C++ class which I use as the view? Is there some QWidget-based class which I'd then add the series to?
The QtGraphs Module is still under development.
I think the correct class isQGraphsView
, but it doesn't seem to exist yet.It's mentioned here as this function returns this type.
-
Isn't the Graphs moved out of technical preview as of 6.8? I thought I saw something, but cant find it again, about the qt widgets support for 2d graphs being lagging. Do you know if Qt communicates this roadmap externally? I don't see anything about it the Jira board of known issues.
-
Does Graphs even aim to replace the current 2d qt charts? Or is Graphs just meant to be a 3d thing?
If it does, is there a way to use the qml-based Qt Graphs from C++?
-
@SandSnip3r said in Qt Graphs. Building 2d plot using c++ only.:
Isn't the Graphs moved out of technical preview as of 6.8?
Should be but as you can see from OPs question
QGraphsView
, the C++ API to access the QML backend is mentioned in the documentation but not implemented nor it has it's own documentation page... the links lead to nowhere... :(Maybe use the QML interface for now and handle it like any other hybrid QML/C++ app
QGraphs
should be 2D and 3D + C++ and QML... but not everything seem to work right now.