Uploaded image for project: 'Qt'
  1. Qt
  2. QTBUG-131136

3D scatter graph bugs

    XMLWordPrintable

Details

    • Bug
    • Resolution: Fixed
    • P1: Critical
    • None
    • 6.8
    • Graphs: 3D
    • None
    • All
    • e7426f2d4 (dev), b840e23ee (dev), c59cdb859 (6.8), a3271f06e (6.8), 8fccbff08 (dev), ea0167d2f (6.8), d0d2eedd6 (dev), 17adc8034 (6.8)

    Description

      • Scatter3D changing "selectionMode" has no effect.
        Minimal reproducible example:
        import QtQuick
        import QtGraphs
        
        Window {
          id: root
          width: 1280
          height: 960
          visible: true
          title: qsTr("Graphs 3D - Scatter Graph")
        
          Scatter3D {
            id: scatterGraph
            anchors.fill: parent
        
            selectionMode: Graphs3D.SelectionFlag.ItemRowAndColumn
        
            Scatter3DSeries {
              id: scatterSeries
        
              ItemModelScatterDataProxy {
                itemModel: dataModel
                xPosRole: "xPos"
                yPosRole: "yPos"
                zPosRole: "zPos"
              }
            }
          }
        
          ListModel {
            id: dataModel
        
            Component.onCompleted: {
              for (let i = 0; i <= 10; ++i) {
                for (let j = 0; j <= 10; ++j) {
                  dataModel.append({"xPos": i, "yPos": i + j, "zPos": j})
                }
              }
            }
          }
        }
        
      • Setting Scatter3DSeries "visible" property to false does not hide the series. It does, however, influence the automatic min and max range of the axes.
        Minimal reproducible example:
        import QtQuick
        import QtGraphs
        
        Window {
          id: root
          width: 1280
          height: 960
          visible: true
          title: qsTr("Graphs 3D - Scatter Graph")
        
          Scatter3D {
            id: scatterGraph
            anchors.fill: parent
        
            Scatter3DSeries {
              id: scatterSeries
        
              visible: false
        
              ItemModelScatterDataProxy {
                itemModel: dataModel
                xPosRole: "xPos"
                yPosRole: "yPos"
                zPosRole: "zPos"
              }
            }
          }
        
          ListModel {
            id: dataModel
            ListElement{ xPos: "-0.5"; yPos: "-0.5"; zPos: "-0.5"; }
            ListElement{ xPos: "0.5"; yPos: "0.5"; zPos: "0.5"; }
          }
        }
        
      • "labelAutoAngle" continuous label angle adjustment when rotating graph does not work - it changes the angle, however, when either the graph is rotated so that the graph background shifts or element selection is made. The same behaviour is observed with the titles.
        Minimal reproducible example:
        import QtQuick
        import QtGraphs
        
        Window {
          id: root
          width: 1280
          height: 960
          visible: true
          title: qsTr("Graphs 3D - Scatter Graph")
        
          Scatter3D {
            id: scatterGraph
            anchors.fill: parent
        
            axisX: Value3DAxis {
              labelAutoAngle: 90
            }
        
            axisY: Value3DAxis {
              labelAutoAngle: 90
            }
        
            axisZ: Value3DAxis {
              labelAutoAngle: 90
            }
        
            Scatter3DSeries {
              id: scatterSeries
        
              ItemModelScatterDataProxy {
                itemModel: dataModel
                xPosRole: "xPos"
                yPosRole: "yPos"
                zPosRole: "zPos"
              }
            }
          }
        
          ListModel {
            id: dataModel
            Component.onCompleted: {
              for (let i = -10; i <= 10; ++i) {
                for (let j = -10; j <= 10; ++j) {
                  dataModel.append({"xPos": i, "yPos": (i + j), "zPos": j})
                }
              }
            }
          }
        }
        
      • "reversed" property in Value3DAxis used as axisX, axisY and axisZ in Scatter3D graph has no effect.
        Minimal reproducible example:
        import QtQuick
        import QtGraphs
        
        Window {
          id: root
          width: 1280
          height: 960
          visible: true
          title: qsTr("Graphs 3D - Scatter Graph")
        
          Scatter3D {
            id: scatterGraph
            anchors.fill: parent
        
            axisX: Value3DAxis {
              reversed: true
            }
        
            axisY: Value3DAxis {
              reversed: true
            }
        
            axisZ: Value3DAxis {
              reversed: true
            }
        
            Scatter3DSeries {
              id: scatterSeries
        
              ItemModelScatterDataProxy {
                itemModel: dataModel
                xPosRole: "xPos"
                yPosRole: "yPos"
                zPosRole: "zPos"
              }
            }
          }
        
          ListModel {
            id: dataModel
            Component.onCompleted: {
              for (let i = -10; i <= 10; ++i) {
                for (let j = -10; j <= 10; ++j) {
                  dataModel.append({"xPos": i, "yPos": (i + j), "zPos": j})
                }
              }
            }
          }
        }
        
      • Scatter3D element selection or deselection, either by click or calling clearSelection() method does not update "selectedElement" property. Also, "clearSelection" method call does not seem to clear the selection properly - either selection persists visually until camera is rotated or the floating label alone stays until camera rotation occurs.
        Minimal reproducible example:
        import QtQuick
        import QtQuick.Controls
        import QtGraphs
        
        Window {
          id: root
          width: 1280
          height: 960
          visible: true
          title: qsTr("Graphs 3D - Scatter Graph")
        
          Scatter3D {
            id: scatterGraph
            anchors.fill: parent
        
            onSelectedElementChanged: {
              console.log("Selected element changed")
            }
        
            Scatter3DSeries {
              id: scatterSeries
              singleHighlightColor: "red"
        
              ItemModelScatterDataProxy {
                itemModel: dataModel
                xPosRole: "xPos"
                yPosRole: "yPos"
                zPosRole: "zPos"
              }
            }
          }
        
          Button {
            anchors {
              top: scatterGraph.top
              horizontalCenter: parent.horizontalCenter
            }
            text: "Clear selection"
            onClicked: {
              scatterGraph.clearSelection()
            }
          }
        
          ListModel {
            id: dataModel
            Component.onCompleted: {
              for (let i = 0; i < 10; ++i) {
                for (let j = 0; j < 10; ++j) {
                  dataModel.append({"xPos": i, "yPos": i + j, "zPos": j})
                }
              }
            }
          }
        }
        

      Attachments

        For Gerrit Dashboard: QTBUG-131136
        # Subject Branch Project Status CR V

        Activity

          People

            oulu_hillbilly Sami Varanka
            bartoszrudzki Bartosz Rudzki
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Gerrit Reviews

                There are no open Gerrit changes