QuickGraphLib 0.1.0a8__tar.gz → 0.1.0a9__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (256) hide show
  1. {quickgraphlib-0.1.0a8 → quickgraphlib-0.1.0a9}/CMakeLists.txt +1 -1
  2. {quickgraphlib-0.1.0a8 → quickgraphlib-0.1.0a9}/PKG-INFO +16 -5
  3. {quickgraphlib-0.1.0a8 → quickgraphlib-0.1.0a9}/QuickGraphLib/Axis.qml +2 -0
  4. {quickgraphlib-0.1.0a8 → quickgraphlib-0.1.0a9}/QuickGraphLib/ColorMaps.cpp +2 -0
  5. {quickgraphlib-0.1.0a8 → quickgraphlib-0.1.0a9}/QuickGraphLib/GraphArea.qml +2 -0
  6. {quickgraphlib-0.1.0a8 → quickgraphlib-0.1.0a9}/QuickGraphLib/GraphItems/AxHLine.qml +2 -0
  7. {quickgraphlib-0.1.0a8 → quickgraphlib-0.1.0a9}/QuickGraphLib/GraphItems/AxHSpan.qml +2 -0
  8. {quickgraphlib-0.1.0a8 → quickgraphlib-0.1.0a9}/QuickGraphLib/GraphItems/AxVLine.qml +2 -0
  9. {quickgraphlib-0.1.0a8 → quickgraphlib-0.1.0a9}/QuickGraphLib/GraphItems/AxVSpan.qml +2 -0
  10. {quickgraphlib-0.1.0a8 → quickgraphlib-0.1.0a9}/QuickGraphLib/GraphItems/BasicLegend.qml +2 -0
  11. {quickgraphlib-0.1.0a8 → quickgraphlib-0.1.0a9}/QuickGraphLib/GraphItems/BasicLegendItem.qml +2 -0
  12. {quickgraphlib-0.1.0a8 → quickgraphlib-0.1.0a9}/QuickGraphLib/GraphItems/CMakeLists.txt +1 -0
  13. {quickgraphlib-0.1.0a8 → quickgraphlib-0.1.0a9}/QuickGraphLib/GraphItems/ColorMesh.qml +2 -0
  14. {quickgraphlib-0.1.0a8 → quickgraphlib-0.1.0a9}/QuickGraphLib/GraphItems/Contour.qml +2 -0
  15. {quickgraphlib-0.1.0a8 → quickgraphlib-0.1.0a9}/QuickGraphLib/GraphItems/GraphItemDragHandler.qml +2 -0
  16. {quickgraphlib-0.1.0a8 → quickgraphlib-0.1.0a9}/QuickGraphLib/GraphItems/Grid.qml +2 -0
  17. {quickgraphlib-0.1.0a8 → quickgraphlib-0.1.0a9}/QuickGraphLib/GraphItems/Histogram.qml +2 -0
  18. {quickgraphlib-0.1.0a8 → quickgraphlib-0.1.0a9}/QuickGraphLib/GraphItems/Line.qml +1 -13
  19. {quickgraphlib-0.1.0a8 → quickgraphlib-0.1.0a9}/QuickGraphLib/GraphItems/Marker.qml +2 -0
  20. {quickgraphlib-0.1.0a8 → quickgraphlib-0.1.0a9}/QuickGraphLib/ImageView.cpp +2 -0
  21. {quickgraphlib-0.1.0a8 → quickgraphlib-0.1.0a9}/QuickGraphLib/PreFabs/ImageAxes.qml +5 -3
  22. {quickgraphlib-0.1.0a8 → quickgraphlib-0.1.0a9}/QuickGraphLib/PreFabs/XYAxes.qml +2 -0
  23. {quickgraphlib-0.1.0a8 → quickgraphlib-0.1.0a9}/QuickGraphLib/ScalingContainer.qml +2 -0
  24. {quickgraphlib-0.1.0a8 → quickgraphlib-0.1.0a9}/QuickGraphLib/ShapeRepeater.qml +2 -0
  25. {quickgraphlib-0.1.0a8 → quickgraphlib-0.1.0a9}/QuickGraphLib/TickLabel.qml +2 -0
  26. {quickgraphlib-0.1.0a8 → quickgraphlib-0.1.0a9}/QuickGraphLib/ZoomPanHandler.qml +3 -1
  27. {quickgraphlib-0.1.0a8 → quickgraphlib-0.1.0a9}/QuickGraphLib/__init__.py +3 -2
  28. {quickgraphlib-0.1.0a8 → quickgraphlib-0.1.0a9}/QuickGraphLib/_version.py +1 -1
  29. {quickgraphlib-0.1.0a8 → quickgraphlib-0.1.0a9}/QuickGraphLib/bindings/CMakeLists.txt +4 -4
  30. {quickgraphlib-0.1.0a8 → quickgraphlib-0.1.0a9}/QuickGraphLib/bindings/pyigen.py +1 -0
  31. {quickgraphlib-0.1.0a8 → quickgraphlib-0.1.0a9}/QuickGraphLib/contours.py +11 -4
  32. {quickgraphlib-0.1.0a8 → quickgraphlib-0.1.0a9}/QuickGraphLib/doc/graphstructure.qdoc +81 -0
  33. quickgraphlib-0.1.0a9/QuickGraphLib/doc/interaction.qdoc +43 -0
  34. {quickgraphlib-0.1.0a8 → quickgraphlib-0.1.0a9}/QuickGraphLib/doc/python_helpers.qdoc +2 -0
  35. quickgraphlib-0.1.0a9/README.md +36 -0
  36. {quickgraphlib-0.1.0a8 → quickgraphlib-0.1.0a9}/ci/setup_qt.py +5 -5
  37. {quickgraphlib-0.1.0a8 → quickgraphlib-0.1.0a9}/docs/build_docs.py +1 -1
  38. {quickgraphlib-0.1.0a8 → quickgraphlib-0.1.0a9}/docs/config.qdocconf +1 -1
  39. {quickgraphlib-0.1.0a8 → quickgraphlib-0.1.0a9}/docs/style.css +21 -4
  40. {quickgraphlib-0.1.0a8 → quickgraphlib-0.1.0a9}/examples/AllTheAxes.qdoc +2 -0
  41. quickgraphlib-0.1.0a9/examples/BasicHistogram.qdoc +15 -0
  42. {quickgraphlib-0.1.0a8 → quickgraphlib-0.1.0a9}/examples/BasicSinGraph.qdoc +2 -0
  43. {quickgraphlib-0.1.0a8 → quickgraphlib-0.1.0a9}/examples/BasicSinGraphNoPrefabs.qdoc +3 -3
  44. {quickgraphlib-0.1.0a8 → quickgraphlib-0.1.0a9}/examples/BuiltinColormaps.qdoc +2 -0
  45. {quickgraphlib-0.1.0a8 → quickgraphlib-0.1.0a9}/examples/BuiltinColormaps.qml +3 -3
  46. {quickgraphlib-0.1.0a8 → quickgraphlib-0.1.0a9}/examples/ColorMappedImages.qdoc +2 -0
  47. {quickgraphlib-0.1.0a8 → quickgraphlib-0.1.0a9}/examples/ColorMappedImages.qml +0 -2
  48. quickgraphlib-0.1.0a9/examples/ColorMesh.png +0 -0
  49. {quickgraphlib-0.1.0a8 → quickgraphlib-0.1.0a9}/examples/ColorMesh.qdoc +2 -0
  50. {quickgraphlib-0.1.0a8 → quickgraphlib-0.1.0a9}/examples/Complex.qdoc +2 -0
  51. quickgraphlib-0.1.0a9/examples/Contours.qdoc +17 -0
  52. {quickgraphlib-0.1.0a8 → quickgraphlib-0.1.0a9}/examples/Conway.qdoc +4 -2
  53. {quickgraphlib-0.1.0a8 → quickgraphlib-0.1.0a9}/examples/Conway.qml +8 -4
  54. quickgraphlib-0.1.0a9/examples/DarkSinGraph.png +0 -0
  55. {quickgraphlib-0.1.0a8 → quickgraphlib-0.1.0a9}/examples/DarkSinGraph.qdoc +8 -0
  56. {quickgraphlib-0.1.0a8 → quickgraphlib-0.1.0a9}/examples/DraggableRegion.qdoc +2 -0
  57. {quickgraphlib-0.1.0a8 → quickgraphlib-0.1.0a9}/examples/ImageAlignment.qdoc +2 -0
  58. {quickgraphlib-0.1.0a8 → quickgraphlib-0.1.0a9}/examples/InvertedAxes.qdoc +2 -0
  59. {quickgraphlib-0.1.0a8 → quickgraphlib-0.1.0a9}/examples/ReadoutLine.qdoc +2 -0
  60. {quickgraphlib-0.1.0a8 → quickgraphlib-0.1.0a9}/examples/ScalingGraph.qdoc +2 -0
  61. {quickgraphlib-0.1.0a8 → quickgraphlib-0.1.0a9}/examples/Scatter.qdoc +2 -0
  62. quickgraphlib-0.1.0a9/examples/Scatter.qml +35 -0
  63. {quickgraphlib-0.1.0a8 → quickgraphlib-0.1.0a9}/examples/SpansAndLines.qdoc +2 -0
  64. {quickgraphlib-0.1.0a8 → quickgraphlib-0.1.0a9}/examples/Subgraphs.qdoc +2 -0
  65. {quickgraphlib-0.1.0a8 → quickgraphlib-0.1.0a9}/examples/TwinX.qdoc +2 -0
  66. {quickgraphlib-0.1.0a8 → quickgraphlib-0.1.0a9}/examples/ZoomableAsImage.qdoc +2 -0
  67. quickgraphlib-0.1.0a9/examples/ZoomableAxes.qdoc +19 -0
  68. quickgraphlib-0.1.0a9/examples/__init__.py +4 -0
  69. {quickgraphlib-0.1.0a8 → quickgraphlib-0.1.0a9}/examples/conway.py +13 -13
  70. {quickgraphlib-0.1.0a8 → quickgraphlib-0.1.0a9}/examples/gallery.py +1 -2
  71. {quickgraphlib-0.1.0a8 → quickgraphlib-0.1.0a9}/pyproject.toml +10 -11
  72. {quickgraphlib-0.1.0a8 → quickgraphlib-0.1.0a9}/requirements.txt +5 -5
  73. quickgraphlib-0.1.0a9/tests/__init__.py +4 -0
  74. quickgraphlib-0.1.0a9/tests/fonts/DejaVuSans-Bold.ttf +0 -0
  75. quickgraphlib-0.1.0a9/tests/fonts/DejaVuSans-BoldOblique.ttf +0 -0
  76. quickgraphlib-0.1.0a9/tests/fonts/DejaVuSans-Oblique.ttf +0 -0
  77. quickgraphlib-0.1.0a9/tests/fonts/DejaVuSans.ttf +0 -0
  78. quickgraphlib-0.1.0a9/tests/fonts/LICENSE +187 -0
  79. quickgraphlib-0.1.0a9/tests/reference_images/AllTheAxes.dat +0 -0
  80. quickgraphlib-0.1.0a9/tests/reference_images/AllTheAxes.png +0 -0
  81. quickgraphlib-0.1.0a9/tests/reference_images/AllTheAxes.svg +1376 -0
  82. quickgraphlib-0.1.0a9/tests/reference_images/AllTheAxes_grab.png +0 -0
  83. quickgraphlib-0.1.0a9/tests/reference_images/BasicHistogram.dat +0 -0
  84. quickgraphlib-0.1.0a9/tests/reference_images/BasicHistogram.png +0 -0
  85. quickgraphlib-0.1.0a9/tests/reference_images/BasicHistogram.svg +777 -0
  86. quickgraphlib-0.1.0a9/tests/reference_images/BasicHistogram_grab.png +0 -0
  87. quickgraphlib-0.1.0a9/tests/reference_images/BasicSinGraph.dat +0 -0
  88. quickgraphlib-0.1.0a9/tests/reference_images/BasicSinGraph.png +0 -0
  89. quickgraphlib-0.1.0a9/tests/reference_images/BasicSinGraph.svg +740 -0
  90. quickgraphlib-0.1.0a9/tests/reference_images/BasicSinGraphNoPrefabs.dat +0 -0
  91. quickgraphlib-0.1.0a9/tests/reference_images/BasicSinGraphNoPrefabs.png +0 -0
  92. quickgraphlib-0.1.0a9/tests/reference_images/BasicSinGraphNoPrefabs.svg +719 -0
  93. quickgraphlib-0.1.0a9/tests/reference_images/BasicSinGraphNoPrefabs_grab.png +0 -0
  94. quickgraphlib-0.1.0a9/tests/reference_images/BasicSinGraph_grab.png +0 -0
  95. quickgraphlib-0.1.0a9/tests/reference_images/BuiltinColormaps.dat +0 -0
  96. quickgraphlib-0.1.0a9/tests/reference_images/BuiltinColormaps.png +0 -0
  97. quickgraphlib-0.1.0a9/tests/reference_images/BuiltinColormaps.svg +3069 -0
  98. quickgraphlib-0.1.0a9/tests/reference_images/BuiltinColormaps_grab.png +0 -0
  99. quickgraphlib-0.1.0a9/tests/reference_images/ColorMappedImages.dat +0 -0
  100. quickgraphlib-0.1.0a9/tests/reference_images/ColorMappedImages.png +0 -0
  101. quickgraphlib-0.1.0a9/tests/reference_images/ColorMappedImages.svg +188 -0
  102. quickgraphlib-0.1.0a9/tests/reference_images/ColorMappedImages_grab.png +0 -0
  103. quickgraphlib-0.1.0a9/tests/reference_images/ColorMesh.dat +0 -0
  104. quickgraphlib-0.1.0a9/tests/reference_images/ColorMesh.png +0 -0
  105. quickgraphlib-0.1.0a9/tests/reference_images/ColorMesh.svg +852 -0
  106. quickgraphlib-0.1.0a9/tests/reference_images/ColorMesh_grab.png +0 -0
  107. quickgraphlib-0.1.0a9/tests/reference_images/Complex.dat +0 -0
  108. quickgraphlib-0.1.0a9/tests/reference_images/Complex.png +0 -0
  109. quickgraphlib-0.1.0a9/tests/reference_images/Complex.svg +1325 -0
  110. quickgraphlib-0.1.0a9/tests/reference_images/Complex_grab.png +0 -0
  111. quickgraphlib-0.1.0a9/tests/reference_images/Contours.dat +0 -0
  112. quickgraphlib-0.1.0a9/tests/reference_images/Contours.png +0 -0
  113. quickgraphlib-0.1.0a9/tests/reference_images/Contours.svg +924 -0
  114. quickgraphlib-0.1.0a9/tests/reference_images/Contours_grab.png +0 -0
  115. quickgraphlib-0.1.0a9/tests/reference_images/Conway.dat +0 -0
  116. quickgraphlib-0.1.0a9/tests/reference_images/Conway.png +0 -0
  117. quickgraphlib-0.1.0a9/tests/reference_images/Conway.svg +1090 -0
  118. quickgraphlib-0.1.0a9/tests/reference_images/Conway_grab.png +0 -0
  119. quickgraphlib-0.1.0a9/tests/reference_images/DarkSinGraph.dat +0 -0
  120. quickgraphlib-0.1.0a9/tests/reference_images/DarkSinGraph.png +0 -0
  121. quickgraphlib-0.1.0a9/tests/reference_images/DarkSinGraph.svg +740 -0
  122. quickgraphlib-0.1.0a9/tests/reference_images/DarkSinGraph_grab.png +0 -0
  123. quickgraphlib-0.1.0a9/tests/reference_images/DraggableRegion.dat +0 -0
  124. quickgraphlib-0.1.0a9/tests/reference_images/DraggableRegion.png +0 -0
  125. quickgraphlib-0.1.0a9/tests/reference_images/DraggableRegion.svg +726 -0
  126. quickgraphlib-0.1.0a9/tests/reference_images/DraggableRegion_grab.png +0 -0
  127. quickgraphlib-0.1.0a9/tests/reference_images/ImageAlignment.dat +0 -0
  128. quickgraphlib-0.1.0a9/tests/reference_images/ImageAlignment.png +0 -0
  129. quickgraphlib-0.1.0a9/tests/reference_images/ImageAlignment.svg +623 -0
  130. quickgraphlib-0.1.0a9/tests/reference_images/ImageAlignment_grab.png +0 -0
  131. quickgraphlib-0.1.0a9/tests/reference_images/InvertedAxes.dat +0 -0
  132. quickgraphlib-0.1.0a9/tests/reference_images/InvertedAxes.png +0 -0
  133. quickgraphlib-0.1.0a9/tests/reference_images/InvertedAxes.svg +730 -0
  134. quickgraphlib-0.1.0a9/tests/reference_images/InvertedAxes_grab.png +0 -0
  135. quickgraphlib-0.1.0a9/tests/reference_images/ReadoutLine.dat +0 -0
  136. quickgraphlib-0.1.0a9/tests/reference_images/ReadoutLine.png +0 -0
  137. quickgraphlib-0.1.0a9/tests/reference_images/ReadoutLine.svg +673 -0
  138. quickgraphlib-0.1.0a9/tests/reference_images/ReadoutLine_grab.png +0 -0
  139. quickgraphlib-0.1.0a9/tests/reference_images/ScalingGraph.dat +0 -0
  140. quickgraphlib-0.1.0a9/tests/reference_images/ScalingGraph.png +0 -0
  141. quickgraphlib-0.1.0a9/tests/reference_images/ScalingGraph.svg +771 -0
  142. quickgraphlib-0.1.0a9/tests/reference_images/ScalingGraph_grab.png +0 -0
  143. quickgraphlib-0.1.0a9/tests/reference_images/Scatter.dat +0 -0
  144. quickgraphlib-0.1.0a9/tests/reference_images/Scatter.png +0 -0
  145. quickgraphlib-0.1.0a9/tests/reference_images/Scatter.svg +210680 -0
  146. quickgraphlib-0.1.0a9/tests/reference_images/Scatter_grab.png +0 -0
  147. quickgraphlib-0.1.0a9/tests/reference_images/SpansAndLines.dat +0 -0
  148. quickgraphlib-0.1.0a9/tests/reference_images/SpansAndLines.png +0 -0
  149. quickgraphlib-0.1.0a9/tests/reference_images/SpansAndLines.svg +785 -0
  150. quickgraphlib-0.1.0a9/tests/reference_images/SpansAndLines_grab.png +0 -0
  151. quickgraphlib-0.1.0a9/tests/reference_images/Subgraphs.dat +0 -0
  152. quickgraphlib-0.1.0a9/tests/reference_images/Subgraphs.png +0 -0
  153. quickgraphlib-0.1.0a9/tests/reference_images/Subgraphs.svg +1720 -0
  154. quickgraphlib-0.1.0a9/tests/reference_images/Subgraphs_grab.png +0 -0
  155. quickgraphlib-0.1.0a9/tests/reference_images/TwinX.dat +0 -0
  156. quickgraphlib-0.1.0a9/tests/reference_images/TwinX.png +0 -0
  157. quickgraphlib-0.1.0a9/tests/reference_images/TwinX.svg +805 -0
  158. quickgraphlib-0.1.0a9/tests/reference_images/TwinX_grab.png +0 -0
  159. quickgraphlib-0.1.0a9/tests/reference_images/ZoomableAsImage.dat +0 -0
  160. quickgraphlib-0.1.0a9/tests/reference_images/ZoomableAsImage.png +0 -0
  161. quickgraphlib-0.1.0a9/tests/reference_images/ZoomableAsImage.svg +765 -0
  162. quickgraphlib-0.1.0a9/tests/reference_images/ZoomableAsImage_grab.png +0 -0
  163. quickgraphlib-0.1.0a9/tests/reference_images/ZoomableAxes.dat +0 -0
  164. quickgraphlib-0.1.0a9/tests/reference_images/ZoomableAxes.png +0 -0
  165. quickgraphlib-0.1.0a9/tests/reference_images/ZoomableAxes.svg +1423 -0
  166. quickgraphlib-0.1.0a9/tests/reference_images/ZoomableAxes_grab.png +0 -0
  167. quickgraphlib-0.1.0a9/tests/test_exports.py +161 -0
  168. quickgraphlib-0.1.0a8/QuickGraphLib/doc/interaction.qdoc +0 -13
  169. quickgraphlib-0.1.0a8/README.md +0 -25
  170. quickgraphlib-0.1.0a8/examples/BasicHistogram.qdoc +0 -13
  171. quickgraphlib-0.1.0a8/examples/ColorMesh.png +0 -0
  172. quickgraphlib-0.1.0a8/examples/Contours.qdoc +0 -13
  173. quickgraphlib-0.1.0a8/examples/DarkSinGraph.png +0 -0
  174. quickgraphlib-0.1.0a8/examples/Scatter.qml +0 -28
  175. quickgraphlib-0.1.0a8/examples/ZoomableAxes.qdoc +0 -13
  176. quickgraphlib-0.1.0a8/setup.cfg +0 -2
  177. {quickgraphlib-0.1.0a8 → quickgraphlib-0.1.0a9}/.clang-format +0 -0
  178. {quickgraphlib-0.1.0a8 → quickgraphlib-0.1.0a9}/.gitignore +0 -0
  179. {quickgraphlib-0.1.0a8 → quickgraphlib-0.1.0a9}/.pre-commit-config.yaml +0 -0
  180. {quickgraphlib-0.1.0a8 → quickgraphlib-0.1.0a9}/LICENCE +0 -0
  181. {quickgraphlib-0.1.0a8 → quickgraphlib-0.1.0a9}/QuickGraphLib/AntialiasingContainer.qml +0 -0
  182. {quickgraphlib-0.1.0a8 → quickgraphlib-0.1.0a9}/QuickGraphLib/CMakeLists.txt +0 -0
  183. {quickgraphlib-0.1.0a8 → quickgraphlib-0.1.0a9}/QuickGraphLib/ColorMaps.hpp +0 -0
  184. {quickgraphlib-0.1.0a8 → quickgraphlib-0.1.0a9}/QuickGraphLib/DataTypes.cpp +0 -0
  185. {quickgraphlib-0.1.0a8 → quickgraphlib-0.1.0a9}/QuickGraphLib/DataTypes.hpp +0 -0
  186. {quickgraphlib-0.1.0a8 → quickgraphlib-0.1.0a9}/QuickGraphLib/GraphItems/helpers/GridHelper.cpp +0 -0
  187. {quickgraphlib-0.1.0a8 → quickgraphlib-0.1.0a9}/QuickGraphLib/GraphItems/helpers/GridHelper.hpp +0 -0
  188. {quickgraphlib-0.1.0a8 → quickgraphlib-0.1.0a9}/QuickGraphLib/GraphItems/helpers/HistogramHelper.cpp +0 -0
  189. {quickgraphlib-0.1.0a8 → quickgraphlib-0.1.0a9}/QuickGraphLib/GraphItems/helpers/HistogramHelper.hpp +0 -0
  190. {quickgraphlib-0.1.0a8 → quickgraphlib-0.1.0a9}/QuickGraphLib/ImageView.hpp +0 -0
  191. {quickgraphlib-0.1.0a8 → quickgraphlib-0.1.0a9}/QuickGraphLib/Plugin.cpp +0 -0
  192. {quickgraphlib-0.1.0a8 → quickgraphlib-0.1.0a9}/QuickGraphLib/PreFabs/CMakeLists.txt +0 -0
  193. {quickgraphlib-0.1.0a8 → quickgraphlib-0.1.0a9}/QuickGraphLib/QuickGraphLib.hpp +0 -0
  194. {quickgraphlib-0.1.0a8 → quickgraphlib-0.1.0a9}/QuickGraphLib/bindings/Bindings.hpp +0 -0
  195. {quickgraphlib-0.1.0a8 → quickgraphlib-0.1.0a9}/QuickGraphLib/bindings/Bindings.xml +0 -0
  196. {quickgraphlib-0.1.0a8 → quickgraphlib-0.1.0a9}/QuickGraphLib/bindings/ShibokenHelpers.cpp +0 -0
  197. {quickgraphlib-0.1.0a8 → quickgraphlib-0.1.0a9}/QuickGraphLib/bindings/ShibokenHelpers.hpp +0 -0
  198. {quickgraphlib-0.1.0a8 → quickgraphlib-0.1.0a9}/QuickGraphLib/bindings/glue/DataTypes.cpp +0 -0
  199. {quickgraphlib-0.1.0a8 → quickgraphlib-0.1.0a9}/QuickGraphLib/consts.py +0 -0
  200. {quickgraphlib-0.1.0a8 → quickgraphlib-0.1.0a9}/QuickGraphLib/doc/AxesGridLayout.drawio +0 -0
  201. {quickgraphlib-0.1.0a8 → quickgraphlib-0.1.0a9}/QuickGraphLib/doc/AxesGridLayout.svg +0 -0
  202. {quickgraphlib-0.1.0a8 → quickgraphlib-0.1.0a9}/QuickGraphLib/doc/export.qdoc +0 -0
  203. {quickgraphlib-0.1.0a8 → quickgraphlib-0.1.0a9}/QuickGraphLib/doc/graphitems.qdoc +0 -0
  204. {quickgraphlib-0.1.0a8 → quickgraphlib-0.1.0a9}/QuickGraphLib/doc/index.qdoc +0 -0
  205. {quickgraphlib-0.1.0a8 → quickgraphlib-0.1.0a9}/QuickGraphLib/doc/module-cpp.qdoc +0 -0
  206. {quickgraphlib-0.1.0a8 → quickgraphlib-0.1.0a9}/QuickGraphLib/doc/module.qdoc +0 -0
  207. {quickgraphlib-0.1.0a8 → quickgraphlib-0.1.0a9}/QuickGraphLib/doc/prefabs.qdoc +0 -0
  208. {quickgraphlib-0.1.0a8 → quickgraphlib-0.1.0a9}/QuickGraphLib/helpers/AxisHelper.cpp +0 -0
  209. {quickgraphlib-0.1.0a8 → quickgraphlib-0.1.0a9}/QuickGraphLib/helpers/AxisHelper.hpp +0 -0
  210. {quickgraphlib-0.1.0a8 → quickgraphlib-0.1.0a9}/QuickGraphLib/helpers/Foreign.hpp +0 -0
  211. {quickgraphlib-0.1.0a8 → quickgraphlib-0.1.0a9}/QuickGraphLib/helpers/Helpers.cpp +0 -0
  212. {quickgraphlib-0.1.0a8 → quickgraphlib-0.1.0a9}/QuickGraphLib/helpers/Helpers.hpp +0 -0
  213. {quickgraphlib-0.1.0a8 → quickgraphlib-0.1.0a9}/QuickGraphLib/py.typed +0 -0
  214. {quickgraphlib-0.1.0a8 → quickgraphlib-0.1.0a9}/activate_venv.ps1 +0 -0
  215. {quickgraphlib-0.1.0a8 → quickgraphlib-0.1.0a9}/ci/find_qt.py +0 -0
  216. {quickgraphlib-0.1.0a8 → quickgraphlib-0.1.0a9}/examples/AllTheAxes.png +0 -0
  217. {quickgraphlib-0.1.0a8 → quickgraphlib-0.1.0a9}/examples/AllTheAxes.qml +0 -0
  218. {quickgraphlib-0.1.0a8 → quickgraphlib-0.1.0a9}/examples/BasicHistogram.png +0 -0
  219. {quickgraphlib-0.1.0a8 → quickgraphlib-0.1.0a9}/examples/BasicHistogram.qml +0 -0
  220. {quickgraphlib-0.1.0a8 → quickgraphlib-0.1.0a9}/examples/BasicSinGraph.png +0 -0
  221. {quickgraphlib-0.1.0a8 → quickgraphlib-0.1.0a9}/examples/BasicSinGraph.qml +0 -0
  222. {quickgraphlib-0.1.0a8 → quickgraphlib-0.1.0a9}/examples/BasicSinGraphNoPrefabs.png +0 -0
  223. {quickgraphlib-0.1.0a8 → quickgraphlib-0.1.0a9}/examples/BasicSinGraphNoPrefabs.qml +0 -0
  224. {quickgraphlib-0.1.0a8 → quickgraphlib-0.1.0a9}/examples/BuiltinColormaps.png +0 -0
  225. {quickgraphlib-0.1.0a8 → quickgraphlib-0.1.0a9}/examples/ColorMappedImages.png +0 -0
  226. {quickgraphlib-0.1.0a8 → quickgraphlib-0.1.0a9}/examples/ColorMesh.qml +0 -0
  227. {quickgraphlib-0.1.0a8 → quickgraphlib-0.1.0a9}/examples/Complex.png +0 -0
  228. {quickgraphlib-0.1.0a8 → quickgraphlib-0.1.0a9}/examples/Complex.qml +0 -0
  229. {quickgraphlib-0.1.0a8 → quickgraphlib-0.1.0a9}/examples/Contours.png +0 -0
  230. {quickgraphlib-0.1.0a8 → quickgraphlib-0.1.0a9}/examples/Contours.qml +0 -0
  231. {quickgraphlib-0.1.0a8 → quickgraphlib-0.1.0a9}/examples/Conway.png +0 -0
  232. {quickgraphlib-0.1.0a8 → quickgraphlib-0.1.0a9}/examples/DarkSinGraph.qml +0 -0
  233. {quickgraphlib-0.1.0a8 → quickgraphlib-0.1.0a9}/examples/DraggableRegion.png +0 -0
  234. {quickgraphlib-0.1.0a8 → quickgraphlib-0.1.0a9}/examples/DraggableRegion.qml +0 -0
  235. {quickgraphlib-0.1.0a8 → quickgraphlib-0.1.0a9}/examples/ExampleGallery.png +0 -0
  236. {quickgraphlib-0.1.0a8 → quickgraphlib-0.1.0a9}/examples/ExampleGallery.qml +0 -0
  237. {quickgraphlib-0.1.0a8 → quickgraphlib-0.1.0a9}/examples/ImageAlignment.png +0 -0
  238. {quickgraphlib-0.1.0a8 → quickgraphlib-0.1.0a9}/examples/ImageAlignment.qml +0 -0
  239. {quickgraphlib-0.1.0a8 → quickgraphlib-0.1.0a9}/examples/InvertedAxes.png +0 -0
  240. {quickgraphlib-0.1.0a8 → quickgraphlib-0.1.0a9}/examples/InvertedAxes.qml +0 -0
  241. {quickgraphlib-0.1.0a8 → quickgraphlib-0.1.0a9}/examples/ReadoutLine.png +0 -0
  242. {quickgraphlib-0.1.0a8 → quickgraphlib-0.1.0a9}/examples/ReadoutLine.qml +0 -0
  243. {quickgraphlib-0.1.0a8 → quickgraphlib-0.1.0a9}/examples/ScalingGraph.png +0 -0
  244. {quickgraphlib-0.1.0a8 → quickgraphlib-0.1.0a9}/examples/ScalingGraph.qml +0 -0
  245. {quickgraphlib-0.1.0a8 → quickgraphlib-0.1.0a9}/examples/Scatter.png +0 -0
  246. {quickgraphlib-0.1.0a8 → quickgraphlib-0.1.0a9}/examples/SpansAndLines.png +0 -0
  247. {quickgraphlib-0.1.0a8 → quickgraphlib-0.1.0a9}/examples/SpansAndLines.qml +0 -0
  248. {quickgraphlib-0.1.0a8 → quickgraphlib-0.1.0a9}/examples/Subgraphs.png +0 -0
  249. {quickgraphlib-0.1.0a8 → quickgraphlib-0.1.0a9}/examples/Subgraphs.qml +0 -0
  250. {quickgraphlib-0.1.0a8 → quickgraphlib-0.1.0a9}/examples/TwinX.png +0 -0
  251. {quickgraphlib-0.1.0a8 → quickgraphlib-0.1.0a9}/examples/TwinX.qml +0 -0
  252. {quickgraphlib-0.1.0a8 → quickgraphlib-0.1.0a9}/examples/ZoomableAsImage.png +0 -0
  253. {quickgraphlib-0.1.0a8 → quickgraphlib-0.1.0a9}/examples/ZoomableAsImage.qml +0 -0
  254. {quickgraphlib-0.1.0a8 → quickgraphlib-0.1.0a9}/examples/ZoomableAxes.png +0 -0
  255. {quickgraphlib-0.1.0a8 → quickgraphlib-0.1.0a9}/examples/ZoomableAxes.qml +0 -0
  256. {quickgraphlib-0.1.0a8 → quickgraphlib-0.1.0a9}/setup_venv.ps1 +0 -0
@@ -24,6 +24,6 @@ if(NOT INSTALL_SUBPATH)
24
24
  endif()
25
25
 
26
26
  find_package(Qt6 REQUIRED COMPONENTS Quick Svg)
27
- qt_standard_project_setup(REQUIRES 6.5)
27
+ qt_standard_project_setup(REQUIRES 6.8)
28
28
 
29
29
  add_subdirectory(QuickGraphLib)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: QuickGraphLib
3
- Version: 0.1.0a8
3
+ Version: 0.1.0a9
4
4
  Summary: A scientific graphing library for QtQuick
5
5
  Author-Email: Matthew Joyce <matthew.joyce@refeyn.com>
6
6
  License: MIT License
@@ -38,8 +38,9 @@ Project-URL: Homepage, https://github.com/refeyn/QuickGraphLib
38
38
  Project-URL: Issues, https://github.com/refeyn/QuickGraphLib/issues
39
39
  Project-URL: Documentation, https://refeyn.github.io/QuickGraphLib
40
40
  Project-URL: Source, https://github.com/refeyn/QuickGraphLib
41
- Requires-Dist: PySide6
41
+ Requires-Dist: PySide6==6.8.0.2
42
42
  Requires-Dist: contourpy
43
+ Requires-Dist: numpy<2
43
44
  Requires-Dist: black; extra == "analyse"
44
45
  Requires-Dist: pylint; extra == "analyse"
45
46
  Requires-Dist: mypy; extra == "analyse"
@@ -48,8 +49,7 @@ Requires-Dist: lxml; extra == "analyse"
48
49
  Requires-Dist: pytest; extra == "analyse"
49
50
  Requires-Dist: pytest-cov; extra == "analyse"
50
51
  Requires-Dist: scikit-build-core; extra == "analyse"
51
- Requires-Dist: shiboken6_generator==6.5.3; extra == "analyse"
52
- Requires-Dist: PySide6==6.5.3; extra == "analyse"
52
+ Requires-Dist: shiboken6_generator==6.8.0.2; extra == "analyse"
53
53
  Requires-Dist: setuptools_scm; extra == "analyse"
54
54
  Provides-Extra: analyse
55
55
  Description-Content-Type: text/markdown
@@ -61,6 +61,7 @@ A scientific graphing library for [QtQuick](https://doc.qt.io/qt-6/qtquick-index
61
61
  Links:
62
62
  - [Online documentation](https://refeyn.github.io/QuickGraphLib)
63
63
  - [PyPI page](https://pypi.org/project/QuickGraphLib/)
64
+ - [Pre-built artefacts](https://github.com/refeyn/QuickGraphLib/releases/latest)
64
65
 
65
66
  Key advantages:
66
67
 
@@ -75,7 +76,17 @@ Key advantages:
75
76
  The example gallery can be run using (provided the Python environment has [PySide6](https://pypi.org/project/PySide6/) and [contourpy](https://pypi.org/project/contourpy/) installed):
76
77
 
77
78
  ```bash
78
- python examples\gallery.py
79
+ python examples/gallery.py
79
80
  ```
80
81
 
81
82
  <p align="center"><img src="https://github.com/refeyn/QuickGraphLib/assets/103422031/56fdff62-ef77-4184-9f43-59a76b92d728" width="80%"></p>
83
+
84
+ ## Qt version compatibility
85
+
86
+ This version of QuickGraphLib is compatible with Qt and PySide6 6.8.0. If you use this module from C++, then Qt's ABI stability guarantees means the compiled binaries will work for any Qt version >= 6.8 and < 7.0. If you use this module from Python, there are some additional features that rely on the PySide6 library version. Therefore the PySide6 version must be 6.8.0.2 exactly. Other 6.8 versions of PySide6 may work, but there are no guarantees.
87
+
88
+ The pre-built wheels aim to be compatible with the most recent recent Qt LTS version, which is currently 6.8. Pre-built wheels for higher non-LTS Qt versions will likely be available once Qt 6.9 is released.
89
+
90
+ ## Python version compatibility
91
+
92
+ QuickGraphLib is compatible with the same Python versions and glibc versions that PySide6 is. For PySide6 6.8, the minimum Python version is 3.9.
@@ -11,6 +11,8 @@ import QuickGraphLib as QuickGraphLib
11
11
  \inqmlmodule QuickGraphLib
12
12
  \inherits QtQuick::Item
13
13
  \brief Displays an Axis.
14
+
15
+ \sa {Basic sin graph (without prefabs)}, {Graph with all four axes}
14
16
  */
15
17
 
16
18
  Item {
@@ -11,6 +11,8 @@
11
11
  \inqmlmodule QuickGraphLib
12
12
  \inherits QObject
13
13
  \brief Utility functions for color maps.
14
+
15
+ \sa {ImageView}, {Builtin color maps}, {Color mapped images}
14
16
  */
15
17
 
16
18
  extern const std::map<ColorMaps::ColorMapName, QList<QRgb>> DEFAULT_COLORMAPS;
@@ -9,6 +9,8 @@ import QtQuick.Shapes as QQS
9
9
  \inqmlmodule QuickGraphLib
10
10
  \inherits QtQuick::Shapes::Shape
11
11
  \brief An area that graphs can be added to.
12
+
13
+ \sa {Basic sin graph (without prefabs)}, {Inverted axes}
12
14
  */
13
15
 
14
16
  QQS.Shape {
@@ -9,6 +9,8 @@ import QtQuick.Shapes as QQS
9
9
  \inqmlmodule QuickGraphLib.GraphItems
10
10
  \inherits QtQuick::Shapes::ShapePath
11
11
  \brief Displays a horizontal line.
12
+
13
+ \sa {Spans and lines}
12
14
  */
13
15
 
14
16
  QQS.ShapePath {
@@ -9,6 +9,8 @@ import QtQuick.Shapes as QQS
9
9
  \inqmlmodule QuickGraphLib.GraphItems
10
10
  \inherits QtQuick::Shapes::ShapePath
11
11
  \brief Displays a horizontal span.
12
+
13
+ \sa {Spans and lines}
12
14
  */
13
15
 
14
16
  QQS.ShapePath {
@@ -9,6 +9,8 @@ import QtQuick.Shapes as QQS
9
9
  \inqmlmodule QuickGraphLib.GraphItems
10
10
  \inherits QtQuick::Rectangle
11
11
  \brief Displays an vertical line.
12
+
13
+ \sa {Spans and lines}, {Draggable region}
12
14
  */
13
15
 
14
16
  QQS.ShapePath {
@@ -9,6 +9,8 @@ import QtQuick.Shapes as QQS
9
9
  \inqmlmodule QuickGraphLib.GraphItems
10
10
  \inherits QtQuick::Shapes::ShapePath
11
11
  \brief Displays an vertical span.
12
+
13
+ \sa {Spans and lines}, {Basic histogram}, {Draggable region}
12
14
  */
13
15
 
14
16
  QQS.ShapePath {
@@ -10,6 +10,8 @@ import QtQuick
10
10
  \brief Displays a simple legend.
11
11
 
12
12
  \note This graph item does not inherit from ShapePath, unlike other graph items.
13
+
14
+ \sa {Basic sin graph}
13
15
  */
14
16
 
15
17
  Rectangle {
@@ -8,6 +8,8 @@ import QtQuick
8
8
  \inqmlmodule QuickGraphLib.GraphItems
9
9
  \inherits QtQuick::Row
10
10
  \brief An single entry in a simple legend.
11
+
12
+ \sa {Basic sin graph}
11
13
  */
12
14
 
13
15
  Row {
@@ -16,6 +16,7 @@ set(QGL_GI_QML_FILES
16
16
  Line.qml
17
17
  ColorMesh.qml
18
18
  )
19
+ set_source_files_properties(Line.qml PROPERTIES QT_QML_SKIP_CACHEGEN True)
19
20
  qt_add_qml_module(QuickGraphLibGraphItems
20
21
  URI QuickGraphLib.GraphItems
21
22
  SHARED
@@ -11,6 +11,8 @@ import QuickGraphLib as QuickGraphLib
11
11
  \brief Display a colorized image from a 2D array.
12
12
 
13
13
  \note This graph item does not inherit from ShapePath, unlike other graph items.
14
+
15
+ \sa {Color mesh}, {Color mapped images}
14
16
  */
15
17
 
16
18
  QuickGraphLib.ImageView {
@@ -10,6 +10,8 @@ import QuickGraphLib as QuickGraphLib
10
10
  \inqmlmodule QuickGraphLib.GraphItems
11
11
  \inherits QtQuick::Shapes::ShapePath
12
12
  \brief Draw a contour line or fill.
13
+
14
+ \sa {Contours}
13
15
  */
14
16
 
15
17
  QQS.ShapePath {
@@ -8,6 +8,8 @@ import QtQuick
8
8
  \inqmlmodule QuickGraphLib.GraphItems
9
9
  \inherits QtQuick::MouseArea
10
10
  \brief Assists converting mouse drags into data positions.
11
+
12
+ \sa {Draggable region}
11
13
  */
12
14
 
13
15
  MouseArea {
@@ -10,6 +10,8 @@ import QuickGraphLib.GraphItems as QGLGraphItems
10
10
  \inqmlmodule QuickGraphLib.GraphItems
11
11
  \inherits QtQuick::Shapes::ShapePath
12
12
  \brief Displays a grid in the background of a graph.
13
+
14
+ \sa {Basic sin graph (without prefabs)}
13
15
  */
14
16
 
15
17
  QQS.ShapePath {
@@ -10,6 +10,8 @@ import QuickGraphLib.GraphItems as QGLGraphItems
10
10
  \inqmlmodule QuickGraphLib.GraphItems
11
11
  \inherits QtQuick::Shapes::ShapePath
12
12
  \brief Displays a histogram.
13
+
14
+ \sa {Basic histogram}
13
15
  */
14
16
 
15
17
  QQS.ShapePath {
@@ -13,19 +13,7 @@ import QuickGraphLib as QuickGraphLib
13
13
 
14
14
  Graph a line using a list of X,Y points. The style of the line can be adjusted using the \l {ShapePath::strokeColor} {strokeColor} and \l {ShapePath::strokeWidth} {strokeWidth} properties.
15
15
 
16
- \qml
17
- GraphArea {
18
- id: grapharea
19
- viewRect: Qt.rect(-20, -1.1, 760, 2.2)
20
-
21
- Line {
22
- dataTransform: grapharea.dataTransform
23
- path: Helpers.linspace(0, 720, 100).map(x => Qt.point(x, Math.sin(x / 180 * Math.PI)))
24
- strokeColor: "red"
25
- strokeWidth: 2
26
- }
27
- }
28
- \endqml
16
+ \sa {Basic sin graph}
29
17
  */
30
18
 
31
19
  QQS.ShapePath {
@@ -10,6 +10,8 @@ import QtQuick
10
10
  \brief Displays a circular marker.
11
11
 
12
12
  \note This graph item does not inherit from ShapePath, unlike other graph items. This is for performance reasons.
13
+
14
+ \sa {Scatter graph}
13
15
  */
14
16
 
15
17
  Rectangle {
@@ -13,6 +13,8 @@
13
13
  \inqmlmodule QuickGraphLib
14
14
  \inherits QtQuick::Item
15
15
  \brief Display a colorized image from a 2D array.
16
+
17
+ \sa {Builtin color maps}, {Color mapped images}, {Image alignment}
16
18
  */
17
19
 
18
20
  /*!
@@ -11,6 +11,8 @@ import QuickGraphLib.GraphItems as QGLGraphItems
11
11
  \inqmlmodule QuickGraphLib.PreFabs
12
12
  \inherits QuickGraphLib::AntialiasingContainer
13
13
  \brief Displays an image with axes and a colorbar.
14
+
15
+ \sa {Color mesh}
14
16
  */
15
17
 
16
18
  QuickGraphLib.AntialiasingContainer {
@@ -149,9 +151,9 @@ QuickGraphLib.AntialiasingContainer {
149
151
  property var colors: QuickGraphLib.ColorMaps.colors(root.colorMesh.colormap)
150
152
 
151
153
  stops: colors.map((color, i) => gradStop.createObject(grad, {
152
- "color": color,
153
- "position": i / (colors.length - 1)
154
- }))
154
+ "color": color,
155
+ "position": i / (colors.length - 1)
156
+ }))
155
157
  }
156
158
  }
157
159
  QuickGraphLib.Axis {
@@ -11,6 +11,8 @@ import QuickGraphLib.GraphItems as QGLGraphItems
11
11
  \inqmlmodule QuickGraphLib.PreFabs
12
12
  \inherits QuickGraphLib::AntialiasingContainer
13
13
  \brief Displays an XY axis with a grid.
14
+
15
+ \sa {Basic sin graph}, {Dark theme sin graph}, {Subgraphs}
14
16
  */
15
17
 
16
18
  QuickGraphLib.AntialiasingContainer {
@@ -10,6 +10,8 @@ import QtQuick
10
10
  \brief Scales its contents while preserving the aspect ratio.
11
11
 
12
12
  This container applies a scaling factor to its content item that preserves its aspect ratio.
13
+
14
+ \sa {Scaled graph}
13
15
  */
14
16
 
15
17
  AntialiasingContainer {
@@ -9,6 +9,8 @@ import QtQuick.Shapes as QQS
9
9
  \inqmlmodule QuickGraphLib
10
10
  \inherits QtQml::Models::Instantiator
11
11
  \brief A \l{Repeater}-like component that works with \l{ShapePath}s.
12
+
13
+ \sa {Scatter graph}
12
14
  */
13
15
 
14
16
  QQM.Instantiator {
@@ -11,6 +11,8 @@ import QtQuick
11
11
 
12
12
  This is the default implementation of a tick label. To customise how labels are shown,
13
13
  you can subclass this and override the \l Text::text property.
14
+
15
+ \sa {Axis}
14
16
  */
15
17
 
16
18
  Text {
@@ -8,13 +8,15 @@ import QtQuick
8
8
  \inqmlmodule QuickGraphLib
9
9
  \inherits QtQuick::PinchArea
10
10
  \brief Pinch/drag handling for graph or image zoom/pan interactions.
11
+
12
+ \sa {Zoomable as image}, {Zoomable axes}
11
13
  */
12
14
 
13
15
  PinchArea {
14
16
  id: root
15
17
 
16
18
  /*!
17
- The view transform, but in a pixel-independant form.
19
+ The view transform, but in a pixel-independent form.
18
20
 
19
21
  \sa GraphArea::baseTransformFromRect
20
22
  */
@@ -6,18 +6,19 @@ import os
6
6
  import pathlib
7
7
  from typing import ContextManager
8
8
 
9
- from PySide6 import QtCore, QtGui, QtQml
9
+ from PySide6 import QtCore, QtGui, QtQml, QtQuick, QtSvg
10
10
 
11
11
  from ._version import __version__, __version_tuple__
12
12
 
13
13
  QML_IMPORT_PATH = str(pathlib.Path(__file__).parent.parent)
14
14
 
15
15
  _dll_path = pathlib.Path(__file__).parent
16
- os.environ["PATH"] = os.fspath(_dll_path) + os.pathsep + os.environ["PATH"]
17
16
  if hasattr(os, "add_dll_directory"):
18
17
  cm: ContextManager = os.add_dll_directory(os.fspath(_dll_path))
19
18
  else:
20
19
  cm = contextlib.nullcontext()
20
+ if os.name == "nt":
21
+ os.environ["PATH"] = os.fspath(_dll_path) + os.pathsep + os.environ["PATH"]
21
22
  with cm:
22
23
  from QuickGraphLib._QuickGraphLib import ( # pylint: disable=import-error,no-name-in-module
23
24
  QGLDoubleList,
@@ -12,5 +12,5 @@ __version__: str
12
12
  __version_tuple__: VERSION_TUPLE
13
13
  version_tuple: VERSION_TUPLE
14
14
 
15
- __version__ = version = '0.1.0a8'
15
+ __version__ = version = '0.1.0a9'
16
16
  __version_tuple__ = version_tuple = (0, 1, 0)
@@ -31,21 +31,21 @@ find_path(
31
31
  )
32
32
  find_library(
33
33
  shiboken_shared_libraries
34
- NAMES shiboken6 shiboken6.abi3 libshiboken6.abi3.so.6.5
34
+ NAMES shiboken6 shiboken6.abi3 libshiboken6.abi3.so.6.8
35
35
  PATH_SUFFIXES shiboken6
36
36
  PATHS "${Python_SITELIB}"
37
37
  REQUIRED
38
38
  )
39
39
  find_library(
40
40
  pyside_shared_library
41
- NAMES pyside6 pyside6.abi3 libpyside6.abi3.so.6.5
41
+ NAMES pyside6 pyside6.abi3 libpyside6.abi3.so.6.8
42
42
  PATH_SUFFIXES PySide6
43
43
  PATHS "${Python_SITELIB}"
44
44
  REQUIRED
45
45
  )
46
46
  find_library(
47
47
  pyside_qml_shared_library
48
- NAMES pyside6qml pyside6qml.abi3 libpyside6qml.abi3.so.6.5
48
+ NAMES pyside6qml pyside6qml.abi3 libpyside6qml.abi3.so.6.8
49
49
  PATH_SUFFIXES PySide6
50
50
  PATHS "${Python_SITELIB}"
51
51
  REQUIRED
@@ -145,7 +145,7 @@ python_add_library(
145
145
  ShibokenHelpers.cpp
146
146
  WITH_SOABI
147
147
  USE_SABI
148
- 3.7
148
+ 3.9
149
149
  )
150
150
 
151
151
  # Apply relevant include and link flags.
@@ -22,6 +22,7 @@ else:
22
22
  cm = contextlib.nullcontext()
23
23
  with cm:
24
24
  pyi_generator.PySide6 = PySide6
25
+ pyi_generator.os = os
25
26
  pyi_generator.main()
26
27
 
27
28
  # Fixup
@@ -1,7 +1,7 @@
1
1
  # SPDX-FileCopyrightText: Copyright (c) 2024 Refeyn Ltd and other QuickGraphLib contributors
2
2
  # SPDX-License-Identifier: MIT
3
3
 
4
- from typing import Sequence
4
+ from typing import Sequence, Tuple
5
5
 
6
6
  from PySide6 import QtCore, QtQml
7
7
 
@@ -27,13 +27,16 @@ def contour_line(
27
27
  z: Sequence[Sequence[float]],
28
28
  height: float,
29
29
  ) -> Sequence[QGLPolygonF]:
30
+ if not CONTOURPY_AVAILABLE:
31
+ print("contourpy is not installed, contourLine will not work")
32
+ return []
33
+
30
34
  gen = contourpy.contour_generator(
31
35
  x=x, y=y, z=z, line_type=contourpy.LineType.Separate
32
36
  )
33
37
  result = []
34
38
  for loop in gen.lines(height):
35
- assert isinstance(loop, np.ndarray), "Loop is not an array" # For mypy
36
- result.append(QGLPolygonF.fromNDArray(loop))
39
+ result.append(QGLPolygonF.fromNDArray(loop)) # type: ignore[arg-type]
37
40
  return result
38
41
 
39
42
 
@@ -41,8 +44,12 @@ def contour_fill(
41
44
  x: Sequence[Sequence[float]],
42
45
  y: Sequence[Sequence[float]],
43
46
  z: Sequence[Sequence[float]],
44
- heights: tuple[float, float],
47
+ heights: Tuple[float, float],
45
48
  ) -> Sequence[QGLPolygonF]:
49
+ if not CONTOURPY_AVAILABLE:
50
+ print("contourpy is not installed, contourFill will not work")
51
+ return []
52
+
46
53
  gen = contourpy.contour_generator(
47
54
  x=x, y=y, z=z, fill_type=contourpy.FillType.OuterOffset
48
55
  )
@@ -129,12 +129,93 @@ Tick positions are also important for grids, normally you can just feed in the t
129
129
 
130
130
  \section1 Drawing a line
131
131
 
132
+ To draw a line between two points, use a \l Line:
133
+
134
+ \qml
135
+ QGLGraphItems.Line {
136
+ dataTransform: grapharea.dataTransform
137
+ path: [Qt.point(0, 0), Qt.point(10, 10)]
138
+ }
139
+ \endqml
140
+
141
+ This code snippet will draw a line between the point (0, 0) and (10, 10). The \l Line item will convert these data coordinates into pixel coordinates for you. To change the color of the line, set the \l {ShapePath::strokeColor}{strokeColor} property:
142
+
143
+ \qml
144
+ QGLGraphItems.Line {
145
+ // ...
146
+ strokeColor: "red"
147
+ }
148
+ \endqml
149
+
150
+ \l Line inherits from ShapePath, so any of the properties of ShapePath can be used. This includes line thickness, dashing, line end styles, etc.
151
+
152
+ The recommended way to generate data for a \l Line or other graph items is to generate it in C++ or Python, since it is much more efficient. However, JavaScript arrays also work, so data can be constructed in the QML code using helper functions like \l {Helpers::linspace}{linspace} and \c map:
153
+
154
+ \qml
155
+ QGLGraphItems.Line {
156
+ dataTransform: grapharea.dataTransform
157
+ path: QuickGraphLib.Helpers.linspace(0, 720, 100).map(x => Qt.point(x, Math.sin(x / 180 * Math.PI)))
158
+ strokeColor: "red"
159
+ strokeWidth: 2
160
+ }
161
+ \endqml
162
+
132
163
  \section1 A simple legend
133
164
 
165
+ QuickGraphLib provides a basic legend type, which can be used to label the different data sets in use in a graph. Since legends come in many styles, it is quite basic. If you have specific needs, the best option is to implement your own using standard QML types, as you will have maximum flexibility. However, if you need something simple, you can use BasicLegend and BasicLegendItem:
166
+
167
+ \qml
168
+ QGLGraphItems.BasicLegend {
169
+ anchors.margins: 10
170
+ anchors.right: parent.right
171
+ anchors.top: parent.top
172
+
173
+ QGLGraphItems.BasicLegendItem {
174
+ strokeColor: "red"
175
+ text: "Sin(θ)"
176
+ }
177
+ }
178
+ \endqml
179
+
180
+ Anchors are used to position the legend (since this is purely a UI component, we don't need to care about data coordinates - the legend is not representing any data). BasicLegendItem can be used to add rows to the legend, and it's properties can be used to set the name and indicator color.
181
+
134
182
  \section1 Full example
135
183
 
136
184
  The full code for this example can be seen in the \l {Basic sin graph (without prefabs)} example.
137
185
 
138
186
  \section1 Prefabs
139
187
 
188
+ QuickGraphLib comes with a set of prefab components, so make common tasks like simple X/Y axes simpler. XYAxes sets up a graph area with two axes, one on the left and one on the bottom. When using XYAxes, you only need to add the graph items, the axes, grid and graph area are already created:
189
+
190
+ \qml
191
+ QGLPreFabs.XYAxes {
192
+ id: axes
193
+
194
+ viewRect: Qt.rect(-20, -1.1, 760, 2.2)
195
+ xLabel: "Angle (°)"
196
+ yLabel: "Value"
197
+
198
+ QGLGraphItems.Line {
199
+ id: sinLine
200
+
201
+ dataTransform: axes.dataTransform
202
+ path: QuickGraphLib.Helpers.linspace(0, 720, 100).map(x => Qt.point(x, Math.sin(x / 180 * Math.PI)))
203
+ strokeColor: "red"
204
+ strokeWidth: 2
205
+ }
206
+ QGLGraphItems.BasicLegend {
207
+ anchors.margins: 10
208
+ anchors.right: parent.right
209
+ anchors.top: parent.top
210
+
211
+ QGLGraphItems.BasicLegendItem {
212
+ strokeColor: sinLine.strokeColor
213
+ text: "Sin(θ)"
214
+ }
215
+ }
216
+ }
217
+ \endqml
218
+
219
+ XYAxes can be customized to some extent (see \l {Dark theme sin graph} for a theming example), the components of the graph are exposed though properties. However, if a more flexibly layout is needed, then prefabs should not be used.
220
+
140
221
  */
@@ -0,0 +1,43 @@
1
+ // SPDX-FileCopyrightText: Copyright (c) 2024 Refeyn Ltd and other QuickGraphLib contributors
2
+ // SPDX-License-Identifier: MIT
3
+
4
+ /*!
5
+ \page interaction.html
6
+ \title Interaction
7
+ \brief How to construct interactive graphs
8
+
9
+ \section1 Zooming and panning
10
+
11
+ Zooming and panning can be handled using a ZoomPanHandler, which combines a PinchHandler and a MouseArea into one type that translates touch and mouse inputs into a transformation. The ZoomPanHandler has two outputs:
12
+
13
+ \list
14
+ \li \l{ZoomPanHandler::viewTransform}{viewTransform}, which can be provided to a Matrix4x4 transform, and used on any \l Item, or passed to \l {GraphArea::viewTransform} to scale a graph
15
+ \li \l{ZoomPanHandler::baseTransform}{baseTransform}, which is a more size-independent version of viewTransform which can be translated into a view rect using ZoomPanHandler's utility methods
16
+ \endlist
17
+
18
+ With these properties, two sorts of interaction can be implemented:
19
+
20
+ \list
21
+ \li Zooming into a graph as if it's an image. This can be useful for large or complex figures, where the user may not be able to see the details. This can be achieved by applying the viewTransform to the \l Item which contains the graph (e.g. the GridLayout or XYAxes). See the \l {Zoomable as image} example for more details.
22
+ \li Using zooming and panning to change the axes limits. This can be used when the data itself is has complex detail that is not visible when all of the data is shown. This can be achieved by passing the viewTransform to the GraphArea, and optionally providing a set of spin boxes for precise control of the limits. See the \l {Zoomable axes} example for more details.
23
+ \endlist
24
+
25
+ \section1 Interactive graph items
26
+
27
+ There is a huge amount of interaction possible in a graph, so here we'll stick to the basics. Things you might want to add to your graph include:
28
+
29
+ \list
30
+ \li Draggable regions
31
+ \li Hover text / tooltips
32
+ \li Read out of where the cursor is
33
+ \li Buttons over particular data points
34
+ \endlist
35
+
36
+ All of this can be implemented using MouseArea, or using a control, and using the \l{Item::x}{x} and \l{Item::y}{y} properties to position the \l Item (this is because graph items usually inherit from ShapePath, which is not an Item, and so anchors do not work).
37
+
38
+ The \l {Readout line} example demonstrates using a MouseArea to monitor the position of the mouse and translate it into data coordinates, a similar arrangement can be used for tooltips.
39
+
40
+ The \l {Draggable region} example uses a GraphItemDragHandler (another MouseArea helper) to implement a draggable and resizable region.
41
+
42
+ In general, because QML already provides so many interactive items, adding interactivity to a graph is easy and just uses standard QML items, with a bit of extra maths to do positioning since it often needs to be done in data coordinates instead of purely using pixel coordinates.
43
+ */
@@ -31,6 +31,8 @@ Visit the \l {QuickGraphLib} module documentation and examples (in particular th
31
31
  \inqmlmodule QuickGraphLib.PythonHelpers
32
32
  \inherits QObject
33
33
  \brief Produces contour lines and fills from XYZ data.
34
+
35
+ The contourpy package must be installed to use these methods. See \l {https://contourpy.readthedocs.io/} for installation instructions and algorithm details.
34
36
  */
35
37
 
36
38
  /*!
@@ -0,0 +1,36 @@
1
+ # QuickGraphLib
2
+
3
+ A scientific graphing library for [QtQuick](https://doc.qt.io/qt-6/qtquick-index.html) using Qt6.
4
+
5
+ Links:
6
+ - [Online documentation](https://refeyn.github.io/QuickGraphLib)
7
+ - [PyPI page](https://pypi.org/project/QuickGraphLib/)
8
+ - [Pre-built artefacts](https://github.com/refeyn/QuickGraphLib/releases/latest)
9
+
10
+ Key advantages:
11
+
12
+ - Written in C++ and QML (with some optional Python helpers), so it can be used in both C++ and Python projects
13
+ - QtQuick's hardware-based rendering makes this library render very fast
14
+ - Support for line graphs, histograms, contour plots and more
15
+ - Interactivity supported natively though declarative bindings and QtQuick
16
+ - Support for PNG and SVG export
17
+
18
+ ## Examples
19
+
20
+ The example gallery can be run using (provided the Python environment has [PySide6](https://pypi.org/project/PySide6/) and [contourpy](https://pypi.org/project/contourpy/) installed):
21
+
22
+ ```bash
23
+ python examples/gallery.py
24
+ ```
25
+
26
+ <p align="center"><img src="https://github.com/refeyn/QuickGraphLib/assets/103422031/56fdff62-ef77-4184-9f43-59a76b92d728" width="80%"></p>
27
+
28
+ ## Qt version compatibility
29
+
30
+ This version of QuickGraphLib is compatible with Qt and PySide6 6.8.0. If you use this module from C++, then Qt's ABI stability guarantees means the compiled binaries will work for any Qt version >= 6.8 and < 7.0. If you use this module from Python, there are some additional features that rely on the PySide6 library version. Therefore the PySide6 version must be 6.8.0.2 exactly. Other 6.8 versions of PySide6 may work, but there are no guarantees.
31
+
32
+ The pre-built wheels aim to be compatible with the most recent recent Qt LTS version, which is currently 6.8. Pre-built wheels for higher non-LTS Qt versions will likely be available once Qt 6.9 is released.
33
+
34
+ ## Python version compatibility
35
+
36
+ QuickGraphLib is compatible with the same Python versions and glibc versions that PySide6 is. For PySide6 6.8, the minimum Python version is 3.9.