Contents Menu Expand Light mode Dark mode Auto light/dark, in light mode Auto light/dark, in dark mode Skip to content
Qt for Python
Logo
Qt for Python
  • Getting Started
    • Qt, QML, Widgets…What Is The Difference?
    • Which IDEs Are Compatible?
    • Binding Generation: What Is Shiboken?
    • File Types
    • Distributing Your Application to Other Systems/Platforms
    • Why Qt for Python?
    • Porting Applications from PySide2 to PySide6
  • Commercial Use
  • Building from Source
    • Linux
    • macOS
    • Windows
  • Package Details
  • Modules API
    • Qt Modules Supported by Qt for Python
      • PySide6.Qt3DAnimation
        • PySide6.Qt3DAnimation.Qt3DAnimation.QAbstractAnimation
        • PySide6.Qt3DAnimation.Qt3DAnimation.QAbstractAnimationClip
        • PySide6.Qt3DAnimation.Qt3DAnimation.QAbstractChannelMapping
        • PySide6.Qt3DAnimation.Qt3DAnimation.QAbstractClipAnimator
        • PySide6.Qt3DAnimation.Qt3DAnimation.QAbstractClipBlendNode
        • PySide6.Qt3DAnimation.Qt3DAnimation.QAdditiveClipBlend
        • PySide6.Qt3DAnimation.Qt3DAnimation.QAnimationAspect
        • PySide6.Qt3DAnimation.Qt3DAnimation.QAnimationCallback
        • PySide6.Qt3DAnimation.Qt3DAnimation.QAnimationClip
        • PySide6.Qt3DAnimation.Qt3DAnimation.QAnimationClipData
        • PySide6.Qt3DAnimation.Qt3DAnimation.QAnimationClipLoader
        • PySide6.Qt3DAnimation.Qt3DAnimation.QAnimationController
        • PySide6.Qt3DAnimation.Qt3DAnimation.QAnimationGroup
        • PySide6.Qt3DAnimation.Qt3DAnimation.QBlendedClipAnimator
        • PySide6.Qt3DAnimation.Qt3DAnimation.QCallbackMapping
        • PySide6.Qt3DAnimation.Qt3DAnimation.QChannel
        • PySide6.Qt3DAnimation.Qt3DAnimation.QChannelComponent
        • PySide6.Qt3DAnimation.Qt3DAnimation.QChannelMapper
        • PySide6.Qt3DAnimation.Qt3DAnimation.QChannelMapping
        • PySide6.Qt3DAnimation.Qt3DAnimation.QClipAnimator
        • PySide6.Qt3DAnimation.Qt3DAnimation.QClipBlendValue
        • PySide6.Qt3DAnimation.Qt3DAnimation.QClock
        • PySide6.Qt3DAnimation.Qt3DAnimation.QKeyFrame
        • PySide6.Qt3DAnimation.Qt3DAnimation.QKeyframeAnimation
        • PySide6.Qt3DAnimation.Qt3DAnimation.QLerpClipBlend
        • PySide6.Qt3DAnimation.Qt3DAnimation.QMorphTarget
        • PySide6.Qt3DAnimation.Qt3DAnimation.QMorphingAnimation
        • PySide6.Qt3DAnimation.Qt3DAnimation.QSkeletonMapping
        • PySide6.Qt3DAnimation.Qt3DAnimation.QVertexBlendAnimation
        • PySide6.Qt3DAnimation.Qt3DAnimation
      • PySide6.Qt3DCore
        • PySide6.Qt3DCore.Qt3DCore.QAbstractAspect
        • PySide6.Qt3DCore.Qt3DCore.QAbstractFunctor
        • PySide6.Qt3DCore.Qt3DCore.QAbstractSkeleton
        • PySide6.Qt3DCore.Qt3DCore.QArmature
        • PySide6.Qt3DCore.Qt3DCore.QAspectEngine
        • PySide6.Qt3DCore.Qt3DCore.QAspectJob
        • PySide6.Qt3DCore.Qt3DCore.QAttribute
        • PySide6.Qt3DCore.Qt3DCore.QBackendNode
        • PySide6.Qt3DCore.Qt3DCore.QBackendNodeMapper
        • PySide6.Qt3DCore.Qt3DCore.QBoundingVolume
        • PySide6.Qt3DCore.Qt3DCore.QBuffer
        • PySide6.Qt3DCore.Qt3DCore.QComponent
        • PySide6.Qt3DCore.Qt3DCore.QCoreAspect
        • PySide6.Qt3DCore.Qt3DCore.QCoreSettings
        • PySide6.Qt3DCore.Qt3DCore.QEntity
        • PySide6.Qt3DCore.Qt3DCore.QGeometry
        • PySide6.Qt3DCore.Qt3DCore.QGeometryView
        • PySide6.Qt3DCore.Qt3DCore.QJoint
        • PySide6.Qt3DCore.Qt3DCore.QNode
        • PySide6.Qt3DCore.Qt3DCore.QNodeId
        • PySide6.Qt3DCore.Qt3DCore.QNodeIdTypePair
        • PySide6.Qt3DCore.Qt3DCore.QSkeleton
        • PySide6.Qt3DCore.Qt3DCore.QSkeletonLoader
        • PySide6.Qt3DCore.Qt3DCore.QTransform
        • PySide6.Qt3DCore.Qt3DCore
      • PySide6.Qt3DExtras
        • PySide6.Qt3DExtras.Qt3DExtras.QAbstractCameraController.InputState
        • PySide6.Qt3DExtras.Qt3DExtras.QAbstractCameraController
        • PySide6.Qt3DExtras.Qt3DExtras.QAbstractSpriteSheet
        • PySide6.Qt3DExtras.Qt3DExtras.QConeGeometry
        • PySide6.Qt3DExtras.Qt3DExtras.QConeGeometryView
        • PySide6.Qt3DExtras.Qt3DExtras.QConeMesh
        • PySide6.Qt3DExtras.Qt3DExtras.QCuboidGeometry
        • PySide6.Qt3DExtras.Qt3DExtras.QCuboidGeometryView
        • PySide6.Qt3DExtras.Qt3DExtras.QCuboidMesh
        • PySide6.Qt3DExtras.Qt3DExtras.QCylinderGeometry
        • PySide6.Qt3DExtras.Qt3DExtras.QCylinderGeometryView
        • PySide6.Qt3DExtras.Qt3DExtras.QCylinderMesh
        • PySide6.Qt3DExtras.Qt3DExtras.QDiffuseMapMaterial
        • PySide6.Qt3DExtras.Qt3DExtras.QDiffuseSpecularMapMaterial
        • PySide6.Qt3DExtras.Qt3DExtras.QDiffuseSpecularMaterial
        • PySide6.Qt3DExtras.Qt3DExtras.QExtrudedTextGeometry
        • PySide6.Qt3DExtras.Qt3DExtras.QExtrudedTextMesh
        • PySide6.Qt3DExtras.Qt3DExtras.QFirstPersonCameraController
        • PySide6.Qt3DExtras.Qt3DExtras.QForwardRenderer
        • PySide6.Qt3DExtras.Qt3DExtras.QGoochMaterial
        • PySide6.Qt3DExtras.Qt3DExtras.QMetalRoughMaterial
        • PySide6.Qt3DExtras.Qt3DExtras.QMorphPhongMaterial
        • PySide6.Qt3DExtras.Qt3DExtras.QNormalDiffuseMapAlphaMaterial
        • PySide6.Qt3DExtras.Qt3DExtras.QNormalDiffuseMapMaterial
        • PySide6.Qt3DExtras.Qt3DExtras.QNormalDiffuseSpecularMapMaterial
        • PySide6.Qt3DExtras.Qt3DExtras.QOrbitCameraController
        • PySide6.Qt3DExtras.Qt3DExtras.QPerVertexColorMaterial
        • PySide6.Qt3DExtras.Qt3DExtras.QPhongAlphaMaterial
        • PySide6.Qt3DExtras.Qt3DExtras.QPhongMaterial
        • PySide6.Qt3DExtras.Qt3DExtras.QPlaneGeometry
        • PySide6.Qt3DExtras.Qt3DExtras.QPlaneGeometryView
        • PySide6.Qt3DExtras.Qt3DExtras.QPlaneMesh
        • PySide6.Qt3DExtras.Qt3DExtras.QSkyboxEntity
        • PySide6.Qt3DExtras.Qt3DExtras.QSphereGeometry
        • PySide6.Qt3DExtras.Qt3DExtras.QSphereGeometryView
        • PySide6.Qt3DExtras.Qt3DExtras.QSphereMesh
        • PySide6.Qt3DExtras.Qt3DExtras.QSpriteGrid
        • PySide6.Qt3DExtras.Qt3DExtras.QSpriteSheet
        • PySide6.Qt3DExtras.Qt3DExtras.QSpriteSheetItem
        • PySide6.Qt3DExtras.Qt3DExtras.QText2DEntity
        • PySide6.Qt3DExtras.Qt3DExtras.QTextureMaterial
        • PySide6.Qt3DExtras.Qt3DExtras.QTorusGeometry
        • PySide6.Qt3DExtras.Qt3DExtras.QTorusGeometryView
        • PySide6.Qt3DExtras.Qt3DExtras.QTorusMesh
        • PySide6.Qt3DExtras.Qt3DExtras
        • PySide6.Qt3DExtras.Qt3DExtras.Qt3DWindow
      • PySide6.Qt3DInput
        • PySide6.Qt3DInput.Qt3DInput.QAbstractActionInput
        • PySide6.Qt3DInput.Qt3DInput.QAbstractAxisInput
        • PySide6.Qt3DInput.Qt3DInput.QAbstractPhysicalDevice
        • PySide6.Qt3DInput.Qt3DInput.QAction
        • PySide6.Qt3DInput.Qt3DInput.QActionInput
        • PySide6.Qt3DInput.Qt3DInput.QAnalogAxisInput
        • PySide6.Qt3DInput.Qt3DInput.QAxis
        • PySide6.Qt3DInput.Qt3DInput.QAxisAccumulator
        • PySide6.Qt3DInput.Qt3DInput.QAxisSetting
        • PySide6.Qt3DInput.Qt3DInput.QButtonAxisInput
        • PySide6.Qt3DInput.Qt3DInput.QInputAspect
        • PySide6.Qt3DInput.Qt3DInput.QInputChord
        • PySide6.Qt3DInput.Qt3DInput.QInputSequence
        • PySide6.Qt3DInput.Qt3DInput.QInputSettings
        • PySide6.Qt3DInput.Qt3DInput.QKeyEvent
        • PySide6.Qt3DInput.Qt3DInput.QKeyboardDevice
        • PySide6.Qt3DInput.Qt3DInput.QKeyboardHandler
        • PySide6.Qt3DInput.Qt3DInput.QLogicalDevice
        • PySide6.Qt3DInput.Qt3DInput.QMouseDevice
        • PySide6.Qt3DInput.Qt3DInput.QMouseEvent
        • PySide6.Qt3DInput.Qt3DInput.QMouseHandler
        • PySide6.Qt3DInput.Qt3DInput.QWheelEvent
        • PySide6.Qt3DInput.Qt3DInput
      • PySide6.Qt3DLogic
        • PySide6.Qt3DLogic.Qt3DLogic.QFrameAction
        • PySide6.Qt3DLogic.Qt3DLogic.QLogicAspect
        • PySide6.Qt3DLogic.Qt3DLogic
      • PySide6.Qt3DRender
        • PySide6.Qt3DRender.Qt3DRender.PropertyReaderInterface
        • PySide6.Qt3DRender.Qt3DRender.QAbstractLight
        • PySide6.Qt3DRender.Qt3DRender.QAbstractRayCaster
        • PySide6.Qt3DRender.Qt3DRender.QAbstractTexture
        • PySide6.Qt3DRender.Qt3DRender.QAbstractTextureImage
        • PySide6.Qt3DRender.Qt3DRender.QAlphaCoverage
        • PySide6.Qt3DRender.Qt3DRender.QAlphaTest
        • PySide6.Qt3DRender.Qt3DRender.QBlendEquation
        • PySide6.Qt3DRender.Qt3DRender.QBlendEquationArguments
        • PySide6.Qt3DRender.Qt3DRender.QBlitFramebuffer
        • PySide6.Qt3DRender.Qt3DRender.QBufferCapture
        • PySide6.Qt3DRender.Qt3DRender.QCamera
        • PySide6.Qt3DRender.Qt3DRender.QCameraLens
        • PySide6.Qt3DRender.Qt3DRender.QCameraSelector
        • PySide6.Qt3DRender.Qt3DRender.QClearBuffers
        • PySide6.Qt3DRender.Qt3DRender.QClipPlane
        • PySide6.Qt3DRender.Qt3DRender.QColorMask
        • PySide6.Qt3DRender.Qt3DRender.QComputeCommand
        • PySide6.Qt3DRender.Qt3DRender.QCullFace
        • PySide6.Qt3DRender.Qt3DRender.QDebugOverlay
        • PySide6.Qt3DRender.Qt3DRender.QDepthRange
        • PySide6.Qt3DRender.Qt3DRender.QDepthTest
        • PySide6.Qt3DRender.Qt3DRender.QDirectionalLight
        • PySide6.Qt3DRender.Qt3DRender.QDispatchCompute
        • PySide6.Qt3DRender.Qt3DRender.QDithering
        • PySide6.Qt3DRender.Qt3DRender.QEffect
        • PySide6.Qt3DRender.Qt3DRender.QEnvironmentLight
        • PySide6.Qt3DRender.Qt3DRender.QFilterKey
        • PySide6.Qt3DRender.Qt3DRender.QFrameGraphNode
        • PySide6.Qt3DRender.Qt3DRender.QFrontFace
        • PySide6.Qt3DRender.Qt3DRender.QFrustumCulling
        • PySide6.Qt3DRender.Qt3DRender.QGeometryRenderer
        • PySide6.Qt3DRender.Qt3DRender.QGraphicsApiFilter
        • PySide6.Qt3DRender.Qt3DRender.QLayer
        • PySide6.Qt3DRender.Qt3DRender.QLayerFilter
        • PySide6.Qt3DRender.Qt3DRender.QLevelOfDetail
        • PySide6.Qt3DRender.Qt3DRender.QLevelOfDetailBoundingSphere
        • PySide6.Qt3DRender.Qt3DRender.QLevelOfDetailSwitch
        • PySide6.Qt3DRender.Qt3DRender.QLineWidth
        • PySide6.Qt3DRender.Qt3DRender.QMaterial
        • PySide6.Qt3DRender.Qt3DRender.QMemoryBarrier
        • PySide6.Qt3DRender.Qt3DRender.QMesh
        • PySide6.Qt3DRender.Qt3DRender.QMultiSampleAntiAliasing
        • PySide6.Qt3DRender.Qt3DRender.QNoDepthMask
        • PySide6.Qt3DRender.Qt3DRender.QNoDraw
        • PySide6.Qt3DRender.Qt3DRender.QNoPicking
        • PySide6.Qt3DRender.Qt3DRender.QObjectPicker
        • PySide6.Qt3DRender.Qt3DRender.QPaintedTextureImage
        • PySide6.Qt3DRender.Qt3DRender.QParameter
        • PySide6.Qt3DRender.Qt3DRender.QPickEvent
        • PySide6.Qt3DRender.Qt3DRender.QPickLineEvent
        • PySide6.Qt3DRender.Qt3DRender.QPickPointEvent
        • PySide6.Qt3DRender.Qt3DRender.QPickTriangleEvent
        • PySide6.Qt3DRender.Qt3DRender.QPickingProxy
        • PySide6.Qt3DRender.Qt3DRender.QPickingSettings
        • PySide6.Qt3DRender.Qt3DRender.QPointLight
        • PySide6.Qt3DRender.Qt3DRender.QPointSize
        • PySide6.Qt3DRender.Qt3DRender.QPolygonOffset
        • PySide6.Qt3DRender.Qt3DRender.QProximityFilter
        • PySide6.Qt3DRender.Qt3DRender.QRasterMode
        • PySide6.Qt3DRender.Qt3DRender.QRayCaster
        • PySide6.Qt3DRender.Qt3DRender.QRayCasterHit
        • PySide6.Qt3DRender.Qt3DRender.QRenderAspect
        • PySide6.Qt3DRender.Qt3DRender.QRenderCapabilities
        • PySide6.Qt3DRender.Qt3DRender.QRenderCapture
        • PySide6.Qt3DRender.Qt3DRender.QRenderCaptureReply
        • PySide6.Qt3DRender.Qt3DRender.QRenderPass
        • PySide6.Qt3DRender.Qt3DRender.QRenderPassFilter
        • PySide6.Qt3DRender.Qt3DRender.QRenderSettings
        • PySide6.Qt3DRender.Qt3DRender.QRenderState
        • PySide6.Qt3DRender.Qt3DRender.QRenderStateSet
        • PySide6.Qt3DRender.Qt3DRender.QRenderSurfaceSelector
        • PySide6.Qt3DRender.Qt3DRender.QRenderTarget
        • PySide6.Qt3DRender.Qt3DRender.QRenderTargetOutput
        • PySide6.Qt3DRender.Qt3DRender.QRenderTargetSelector
        • PySide6.Qt3DRender.Qt3DRender.QSceneLoader
        • PySide6.Qt3DRender.Qt3DRender.QScissorTest
        • PySide6.Qt3DRender.Qt3DRender.QScreenRayCaster
        • PySide6.Qt3DRender.Qt3DRender.QSeamlessCubemap
        • PySide6.Qt3DRender.Qt3DRender.QSetFence
        • PySide6.Qt3DRender.Qt3DRender.QShaderData
        • PySide6.Qt3DRender.Qt3DRender.QShaderImage
        • PySide6.Qt3DRender.Qt3DRender.QShaderProgram
        • PySide6.Qt3DRender.Qt3DRender.QShaderProgramBuilder
        • PySide6.Qt3DRender.Qt3DRender.QSharedGLTexture
        • PySide6.Qt3DRender.Qt3DRender.QSortPolicy
        • PySide6.Qt3DRender.Qt3DRender.QSpotLight
        • PySide6.Qt3DRender.Qt3DRender.QStencilMask
        • PySide6.Qt3DRender.Qt3DRender.QStencilOperation
        • PySide6.Qt3DRender.Qt3DRender.QStencilOperationArguments
        • PySide6.Qt3DRender.Qt3DRender.QStencilTest
        • PySide6.Qt3DRender.Qt3DRender.QStencilTestArguments
        • PySide6.Qt3DRender.Qt3DRender.QSubtreeEnabler
        • PySide6.Qt3DRender.Qt3DRender.QTechnique
        • PySide6.Qt3DRender.Qt3DRender.QTechniqueFilter
        • PySide6.Qt3DRender.Qt3DRender.QTexture1D
        • PySide6.Qt3DRender.Qt3DRender.QTexture1DArray
        • PySide6.Qt3DRender.Qt3DRender.QTexture2D
        • PySide6.Qt3DRender.Qt3DRender.QTexture2DArray
        • PySide6.Qt3DRender.Qt3DRender.QTexture2DMultisample
        • PySide6.Qt3DRender.Qt3DRender.QTexture2DMultisampleArray
        • PySide6.Qt3DRender.Qt3DRender.QTexture3D
        • PySide6.Qt3DRender.Qt3DRender.QTextureBuffer
        • PySide6.Qt3DRender.Qt3DRender.QTextureCubeMap
        • PySide6.Qt3DRender.Qt3DRender.QTextureCubeMapArray
        • PySide6.Qt3DRender.Qt3DRender.QTextureData
        • PySide6.Qt3DRender.Qt3DRender.QTextureDataUpdate
        • PySide6.Qt3DRender.Qt3DRender.QTextureImage
        • PySide6.Qt3DRender.Qt3DRender.QTextureImageData
        • PySide6.Qt3DRender.Qt3DRender.QTextureImageDataGenerator
        • PySide6.Qt3DRender.Qt3DRender.QTextureLoader
        • PySide6.Qt3DRender.Qt3DRender.QTextureRectangle
        • PySide6.Qt3DRender.Qt3DRender.QTextureWrapMode
        • PySide6.Qt3DRender.Qt3DRender.QViewport
        • PySide6.Qt3DRender.Qt3DRender.QWaitFence
        • PySide6.Qt3DRender.Qt3DRender
      • PySide6.QtAsyncio
      • PySide6.QtBluetooth
        • PySide6.QtBluetooth.QBluetooth
        • PySide6.QtBluetooth.QBluetoothAddress
        • PySide6.QtBluetooth.QBluetoothDeviceDiscoveryAgent
        • PySide6.QtBluetooth.QBluetoothDeviceInfo
        • PySide6.QtBluetooth.QBluetoothHostInfo
        • PySide6.QtBluetooth.QBluetoothLocalDevice
        • PySide6.QtBluetooth.QBluetoothServer
        • PySide6.QtBluetooth.QBluetoothServiceDiscoveryAgent
        • PySide6.QtBluetooth.QBluetoothServiceInfo
        • PySide6.QtBluetooth.QBluetoothSocket
        • PySide6.QtBluetooth.QBluetoothUuid
        • PySide6.QtBluetooth.QLowEnergyAdvertisingData
        • PySide6.QtBluetooth.QLowEnergyAdvertisingParameters
        • PySide6.QtBluetooth.QLowEnergyCharacteristic
        • PySide6.QtBluetooth.QLowEnergyCharacteristicData
        • PySide6.QtBluetooth.QLowEnergyConnectionParameters
        • PySide6.QtBluetooth.QLowEnergyController
        • PySide6.QtBluetooth.QLowEnergyDescriptor
        • PySide6.QtBluetooth.QLowEnergyDescriptorData
        • PySide6.QtBluetooth.QLowEnergyService
        • PySide6.QtBluetooth.QLowEnergyServiceData
      • PySide6.QtCanvasPainter
        • PySide6.QtCanvasPainter.QCanvasBoxGradient
        • PySide6.QtCanvasPainter.QCanvasBoxShadow
        • PySide6.QtCanvasPainter.QCanvasBrush
        • PySide6.QtCanvasPainter.QCanvasConicalGradient
        • PySide6.QtCanvasPainter.QCanvasCustomBrush
        • PySide6.QtCanvasPainter.QCanvasGradient
        • PySide6.QtCanvasPainter.QCanvasGridPattern
        • PySide6.QtCanvasPainter.QCanvasImage
        • PySide6.QtCanvasPainter.QCanvasImagePattern
        • PySide6.QtCanvasPainter.QCanvasLinearGradient
        • PySide6.QtCanvasPainter.QCanvasOffscreenCanvas
        • PySide6.QtCanvasPainter.QCanvasPainter
        • PySide6.QtCanvasPainter.QCanvasPainterFactory
        • PySide6.QtCanvasPainter.QCanvasPainterItem
        • PySide6.QtCanvasPainter.QCanvasPainterItemRenderer
        • PySide6.QtCanvasPainter.QCanvasPainterWidget
        • PySide6.QtCanvasPainter.QCanvasPath
        • PySide6.QtCanvasPainter.QCanvasRadialGradient
        • PySide6.QtCanvasPainter.QCanvasRhiPaintDriver
      • Class Reference
      • Licenses and Attributions
      • PySide6.QtCoap
        • PySide6.QtCoap.QCoapClient
        • PySide6.QtCoap.QCoapMessage
        • PySide6.QtCoap.QCoapOption
        • PySide6.QtCoap.QCoapPrivateKey
        • PySide6.QtCoap.QCoapReply
        • PySide6.QtCoap.QCoapRequest
        • PySide6.QtCoap.QCoapResource
        • PySide6.QtCoap.QCoapResourceDiscoveryReply
        • PySide6.QtCoap.QCoapSecurityConfiguration
        • PySide6.QtCoap.QtCoap
      • PySide6.QtConcurrent
        • PySide6.QtConcurrent.QFutureQString
        • PySide6.QtConcurrent.QFutureVoid
        • PySide6.QtConcurrent.QFutureWatcherQString
        • PySide6.QtConcurrent.QFutureWatcherVoid
        • PySide6.QtConcurrent.QtConcurrent
      • PySide6.QtCore
        • Functions
        • Enumerations
        • PySide6.QtCore.QAbstractAnimation
        • PySide6.QtCore.QAbstractEventDispatcher
        • PySide6.QtCore.QAbstractItemModel
        • PySide6.QtCore.QAbstractListModel
        • PySide6.QtCore.QAbstractNativeEventFilter
        • PySide6.QtCore.QAbstractProxyModel
        • PySide6.QtCore.QAbstractTableModel
        • PySide6.QtCore.QAnimationGroup
        • PySide6.QtCore.QBasicMutex
        • PySide6.QtCore.QBasicReadWriteLock
        • PySide6.QtCore.QBasicTimer
        • PySide6.QtCore.QBitArray
        • PySide6.QtCore.QBluetoothPermission
        • PySide6.QtCore.QBuffer
        • PySide6.QtCore.QByteArray
        • PySide6.QtCore.QByteArrayMatcher
        • PySide6.QtCore.QCalendar
        • PySide6.QtCore.QCalendarPermission
        • PySide6.QtCore.QCameraPermission
        • PySide6.QtCore.QCborArray
        • PySide6.QtCore.QCborError
        • PySide6.QtCore.QCborMap
        • PySide6.QtCore.QCborParserError
        • PySide6.QtCore.QCborStreamReader
        • PySide6.QtCore.QCborStreamWriter
        • PySide6.QtCore.QCborStringResultByteArray
        • PySide6.QtCore.QCborStringResultString
        • PySide6.QtCore.QCborValue
        • PySide6.QtCore.QChildEvent
        • PySide6.QtCore.QCollator
        • PySide6.QtCore.QCollatorSortKey
        • PySide6.QtCore.QCommandLineOption
        • PySide6.QtCore.QCommandLineParser
        • PySide6.QtCore.QConcatenateTablesProxyModel
        • PySide6.QtCore.QContactsPermission
        • PySide6.QtCore.QCoreApplication
        • PySide6.QtCore.QCryptographicHash
        • PySide6.QtCore.QDataStream
        • PySide6.QtCore.QDate
        • PySide6.QtCore.QDateTime
        • PySide6.QtCore.QDeadlineTimer
        • PySide6.QtCore.QDir
        • PySide6.QtCore.QDirIterator
        • PySide6.QtCore.QDirListing
        • PySide6.QtCore.QDynamicPropertyChangeEvent
        • PySide6.QtCore.QEasingCurve
        • PySide6.QtCore.QElapsedTimer
        • PySide6.QtCore.QEvent
        • PySide6.QtCore.QEventLoop
        • PySide6.QtCore.QFactoryInterface
        • PySide6.QtCore.QFile
        • PySide6.QtCore.QFileDevice
        • PySide6.QtCore.QFileInfo
        • PySide6.QtCore.QFileSelector
        • PySide6.QtCore.QFileSystemWatcher
        • PySide6.QtCore.QFutureInterfaceBase
        • PySide6.QtCore.QGenericArgument
        • PySide6.QtCore.QGenericReturnArgument
        • PySide6.QtCore.QHashSeed
        • PySide6.QtCore.QIODevice
        • PySide6.QtCore.QIODeviceBase
        • PySide6.QtCore.QIdentityProxyModel
        • PySide6.QtCore.QItemSelection
        • PySide6.QtCore.QItemSelectionModel
        • PySide6.QtCore.QItemSelectionRange
        • PySide6.QtCore.QJsonArray
        • PySide6.QtCore.QJsonDocument
        • PySide6.QtCore.QJsonParseError
        • PySide6.QtCore.QJsonValue
        • PySide6.QtCore.QKeyCombination
        • PySide6.QtCore.QLibrary
        • PySide6.QtCore.QLibraryInfo
        • PySide6.QtCore.QLine
        • PySide6.QtCore.QLineF
        • PySide6.QtCore.QLocale
        • PySide6.QtCore.QLocationPermission
        • PySide6.QtCore.QLockFile
        • PySide6.QtCore.QLoggingCategory
        • PySide6.QtCore.QMargins
        • PySide6.QtCore.QMarginsF
        • PySide6.QtCore.QMessageAuthenticationCode
        • PySide6.QtCore.QMessageLogContext
        • PySide6.QtCore.QMessageLogger
        • PySide6.QtCore.QMetaClassInfo
        • PySide6.QtCore.QMetaEnum
        • PySide6.QtCore.QMetaMethod
        • PySide6.QtCore.QMetaObject
        • PySide6.QtCore.QMetaProperty
        • PySide6.QtCore.QMetaType
        • PySide6.QtCore.QMicrophonePermission
        • PySide6.QtCore.QMimeData
        • PySide6.QtCore.QMimeDatabase
        • PySide6.QtCore.QMimeType
        • PySide6.QtCore.QModelIndex
        • PySide6.QtCore.QModelRoleData
        • PySide6.QtCore.QModelRoleDataSpan
        • PySide6.QtCore.QMutex
        • PySide6.QtCore.QNativeIpcKey
        • PySide6.QtCore.QObject
        • PySide6.QtCore.QOperatingSystemVersion
        • PySide6.QtCore.QOperatingSystemVersionBase
        • PySide6.QtCore.QParallelAnimationGroup
        • PySide6.QtCore.QPauseAnimation
        • PySide6.QtCore.QPermission
        • PySide6.QtCore.QPersistentModelIndex
        • PySide6.QtCore.QPluginLoader
        • PySide6.QtCore.QPoint
        • PySide6.QtCore.QPointF
        • PySide6.QtCore.QProcess
        • PySide6.QtCore.QProcessEnvironment
        • PySide6.QtCore.QPropertyAnimation
        • PySide6.QtCore.QRandomGenerator
        • PySide6.QtCore.QRandomGenerator64
        • PySide6.QtCore.QRangeModel
        • PySide6.QtCore.QReadLocker
        • PySide6.QtCore.QReadWriteLock
        • PySide6.QtCore.QRect
        • PySide6.QtCore.QRectF
        • PySide6.QtCore.QRecursiveMutex
        • PySide6.QtCore.QRegularExpression
        • PySide6.QtCore.QRegularExpressionMatch
        • PySide6.QtCore.QRegularExpressionMatchIterator
        • PySide6.QtCore.QResource
        • PySide6.QtCore.QRunnable
        • PySide6.QtCore.QSaveFile
        • PySide6.QtCore.QSemaphore
        • PySide6.QtCore.QSemaphoreReleaser
        • PySide6.QtCore.QSequentialAnimationGroup
        • PySide6.QtCore.QSettings
        • PySide6.QtCore.QSharedMemory
        • PySide6.QtCore.QSignalBlocker
        • PySide6.QtCore.QSignalMapper
        • PySide6.QtCore.QSize
        • PySide6.QtCore.QSizeF
        • PySide6.QtCore.QSocketDescriptor
        • PySide6.QtCore.QSocketNotifier
        • PySide6.QtCore.QSortFilterProxyModel
        • PySide6.QtCore.QStandardPaths
        • PySide6.QtCore.QStorageInfo
        • PySide6.QtCore.QStringConverter
        • PySide6.QtCore.QStringConverterBase
        • PySide6.QtCore.QStringDecoder
        • PySide6.QtCore.QStringEncoder
        • PySide6.QtCore.QStringListModel
        • PySide6.QtCore.QSysInfo
        • PySide6.QtCore.QSystemSemaphore
        • PySide6.QtCore.QTemporaryDir
        • PySide6.QtCore.QTemporaryFile
        • PySide6.QtCore.QTextBoundaryFinder
        • PySide6.QtCore.QTextStream
        • PySide6.QtCore.QTextStreamManipulator
        • PySide6.QtCore.QThread
        • PySide6.QtCore.QThreadPool
        • PySide6.QtCore.QTime
        • PySide6.QtCore.QTimeLine
        • PySide6.QtCore.QTimeZone
        • PySide6.QtCore.QTimer
        • PySide6.QtCore.QTimerEvent
        • PySide6.QtCore.QTranslator
        • PySide6.QtCore.QTransposeProxyModel
        • PySide6.QtCore.QUrl
        • PySide6.QtCore.QUrlQuery
        • PySide6.QtCore.QUuid
        • PySide6.QtCore.QVariantAnimation
        • PySide6.QtCore.QVersionNumber
        • PySide6.QtCore.QWaitCondition
        • PySide6.QtCore.QWriteLocker
        • PySide6.QtCore.QXmlStreamAttribute
        • PySide6.QtCore.QXmlStreamAttributes
        • PySide6.QtCore.QXmlStreamEntityDeclaration
        • PySide6.QtCore.QXmlStreamEntityResolver
        • PySide6.QtCore.QXmlStreamNamespaceDeclaration
        • PySide6.QtCore.QXmlStreamNotationDeclaration
        • PySide6.QtCore.QXmlStreamReader
        • PySide6.QtCore.QXmlStreamWriter
        • PySide6.QtCore.Qt
        • PySide6.QtCore.Property
        • PySide6.QtCore.Signal
      • PySide6.QtDBus
        • PySide6.QtDBus.QDBus
        • PySide6.QtDBus.QDBusAbstractAdaptor
        • PySide6.QtDBus.QDBusAbstractInterface
        • PySide6.QtDBus.QDBusAbstractInterfaceBase
        • PySide6.QtDBus.QDBusArgument
        • PySide6.QtDBus.QDBusConnection
        • PySide6.QtDBus.QDBusConnectionInterface
        • PySide6.QtDBus.QDBusContext
        • PySide6.QtDBus.QDBusError
        • PySide6.QtDBus.QDBusInterface
        • PySide6.QtDBus.QDBusMessage
        • PySide6.QtDBus.QDBusObjectPath
        • PySide6.QtDBus.QDBusPendingCall
        • PySide6.QtDBus.QDBusPendingCallWatcher
        • PySide6.QtDBus.QDBusServer
        • PySide6.QtDBus.QDBusServiceWatcher
        • PySide6.QtDBus.QDBusSignature
        • PySide6.QtDBus.QDBusUnixFileDescriptor
        • PySide6.QtDBus.QDBusVariant
        • PySide6.QtDBus.QDBusVirtualObject
      • PySide6.QtDesigner
        • PySide6.QtDesigner.QAbstractExtensionFactory
        • PySide6.QtDesigner.QAbstractExtensionManager
        • PySide6.QtDesigner.QAbstractFormBuilder
        • PySide6.QtDesigner.QDesignerActionEditorInterface
        • PySide6.QtDesigner.QDesignerContainerExtension
        • PySide6.QtDesigner.QDesignerCustomWidgetCollectionInterface
        • PySide6.QtDesigner.QDesignerCustomWidgetInterface
        • PySide6.QtDesigner.QDesignerDnDItemInterface
        • PySide6.QtDesigner.QDesignerDynamicPropertySheetExtension
        • PySide6.QtDesigner.QDesignerFormEditorInterface
        • PySide6.QtDesigner.QDesignerFormWindowCursorInterface
        • PySide6.QtDesigner.QDesignerFormWindowInterface
        • PySide6.QtDesigner.QDesignerFormWindowManagerInterface
        • PySide6.QtDesigner.QDesignerFormWindowToolInterface
        • PySide6.QtDesigner.QDesignerMemberSheetExtension
        • PySide6.QtDesigner.QDesignerObjectInspectorInterface
        • PySide6.QtDesigner.QDesignerPropertyEditorInterface
        • PySide6.QtDesigner.QDesignerPropertySheetExtension
        • PySide6.QtDesigner.QDesignerTaskMenuExtension
        • PySide6.QtDesigner.QDesignerWidgetBoxInterface
        • PySide6.QtDesigner.QExtensionManager
        • PySide6.QtDesigner.QFormBuilder
        • PySide6.QtDesigner.QPyDesignerContainerExtension
        • PySide6.QtDesigner.QPyDesignerCustomWidgetCollection
        • PySide6.QtDesigner.QPyDesignerMemberSheetExtension
        • PySide6.QtDesigner.QPyDesignerTaskMenuExtension
      • PySide6.QtGraphs
        • Functions
        • PySide6.QtGraphs.Q3DScene
        • PySide6.QtGraphs.QAbstract3DAxis
        • PySide6.QtGraphs.QAbstract3DSeries
        • PySide6.QtGraphs.QAbstractAxis
        • PySide6.QtGraphs.QAbstractDataProxy
        • PySide6.QtGraphs.QAbstractSeries
        • PySide6.QtGraphs.QAreaSeries
        • PySide6.QtGraphs.QBar3DSeries
        • PySide6.QtGraphs.QBarCategoryAxis
        • PySide6.QtGraphs.QBarDataItem
        • PySide6.QtGraphs.QBarDataProxy
        • PySide6.QtGraphs.QBarModelMapper
        • PySide6.QtGraphs.QBarSeries
        • PySide6.QtGraphs.QBarSet
        • PySide6.QtGraphs.QCategory3DAxis
        • PySide6.QtGraphs.QCustom3DItem
        • PySide6.QtGraphs.QCustom3DLabel
        • PySide6.QtGraphs.QCustom3DVolume
        • PySide6.QtGraphs.QCustomSeries
        • PySide6.QtGraphs.QDateTimeAxis
        • PySide6.QtGraphs.QGraphsLine
        • PySide6.QtGraphs.QGraphsTheme
        • PySide6.QtGraphs.QGraphsThemeDirtyBitField
        • PySide6.QtGraphs.QHeightMapSurfaceDataProxy
        • PySide6.QtGraphs.QItemModelBarDataProxy
        • PySide6.QtGraphs.QItemModelScatterDataProxy
        • PySide6.QtGraphs.QItemModelSurfaceDataProxy
        • PySide6.QtGraphs.QLegendData
        • PySide6.QtGraphs.QLineSeries
        • PySide6.QtGraphs.QLogValue3DAxisFormatter
        • PySide6.QtGraphs.QPieModelMapper
        • PySide6.QtGraphs.QPieSeries
        • PySide6.QtGraphs.QPieSlice
        • PySide6.QtGraphs.QScatter3DSeries
        • PySide6.QtGraphs.QScatterDataItem
        • PySide6.QtGraphs.QScatterDataProxy
        • PySide6.QtGraphs.QScatterSeries
        • PySide6.QtGraphs.QSpline3DSeries
        • PySide6.QtGraphs.QSplineSeries
        • PySide6.QtGraphs.QSurface3DSeries
        • PySide6.QtGraphs.QSurfaceDataItem
        • PySide6.QtGraphs.QSurfaceDataProxy
        • PySide6.QtGraphs.QValue3DAxis
        • PySide6.QtGraphs.QValue3DAxisFormatter
        • PySide6.QtGraphs.QValueAxis
        • PySide6.QtGraphs.QXYModelMapper
        • PySide6.QtGraphs.QXYSeries
        • PySide6.QtGraphs.QtGraphs3D
      • Articles and Guides
      • Licenses and Attributions
      • PySide6.QtGraphsWidgets
        • PySide6.QtGraphsWidgets.Q3DBarsWidgetItem
        • PySide6.QtGraphsWidgets.Q3DGraphsWidgetItem
        • PySide6.QtGraphsWidgets.Q3DScatterWidgetItem
        • PySide6.QtGraphsWidgets.Q3DSurfaceWidgetItem
      • Licenses and Attributions
      • PySide6.QtGui
        • Functions
        • PySide6.QtGui.QAbstractFileIconProvider
        • PySide6.QtGui.QAbstractTextDocumentLayout
        • PySide6.QtGui.QAccessibilityHints
        • PySide6.QtGui.QAccessible
        • PySide6.QtGui.QAccessibleActionInterface
        • PySide6.QtGui.QAccessibleAnnouncementEvent
        • PySide6.QtGui.QAccessibleAttributesInterface
        • PySide6.QtGui.QAccessibleEditableTextInterface
        • PySide6.QtGui.QAccessibleEvent
        • PySide6.QtGui.QAccessibleInterface
        • PySide6.QtGui.QAccessibleObject
        • PySide6.QtGui.QAccessibleSelectionInterface
        • PySide6.QtGui.QAccessibleStateChangeEvent
        • PySide6.QtGui.QAccessibleTableCellInterface
        • PySide6.QtGui.QAccessibleTableModelChangeEvent
        • PySide6.QtGui.QAccessibleTextCursorEvent
        • PySide6.QtGui.QAccessibleTextInsertEvent
        • PySide6.QtGui.QAccessibleTextInterface
        • PySide6.QtGui.QAccessibleTextRemoveEvent
        • PySide6.QtGui.QAccessibleTextSelectionEvent
        • PySide6.QtGui.QAccessibleTextUpdateEvent
        • PySide6.QtGui.QAccessibleValueChangeEvent
        • PySide6.QtGui.QAccessibleValueInterface
        • PySide6.QtGui.QAction
        • PySide6.QtGui.QActionEvent
        • PySide6.QtGui.QActionGroup
        • PySide6.QtGui.QBackingStore
        • PySide6.QtGui.QBitmap
        • PySide6.QtGui.QBrush
        • PySide6.QtGui.QChildWindowEvent
        • PySide6.QtGui.QClipboard
        • PySide6.QtGui.QCloseEvent
        • PySide6.QtGui.QColor
        • PySide6.QtGui.QColorConstants
        • PySide6.QtGui.QColorSpace
        • PySide6.QtGui.QColorTransform
        • PySide6.QtGui.QConicalGradient
        • PySide6.QtGui.QContextMenuEvent
        • PySide6.QtGui.QCursor
        • PySide6.QtGui.QDesktopServices
        • PySide6.QtGui.QDoubleValidator
        • PySide6.QtGui.QDrag
        • PySide6.QtGui.QDragEnterEvent
        • PySide6.QtGui.QDragLeaveEvent
        • PySide6.QtGui.QDragMoveEvent
        • PySide6.QtGui.QDropEvent
        • PySide6.QtGui.QEnterEvent
        • PySide6.QtGui.QEventPoint
        • PySide6.QtGui.QExposeEvent
        • PySide6.QtGui.QFileOpenEvent
        • PySide6.QtGui.QFocusEvent
        • PySide6.QtGui.QFont
        • PySide6.QtGui.QFontDatabase
        • PySide6.QtGui.QFontInfo
        • PySide6.QtGui.QFontMetrics
        • PySide6.QtGui.QFontMetricsF
        • PySide6.QtGui.QFontVariableAxis
        • PySide6.QtGui.QGlyphRun
        • PySide6.QtGui.QGradient
        • PySide6.QtGui.QGuiApplication
        • PySide6.QtGui.QHelpEvent
        • PySide6.QtGui.QHideEvent
        • PySide6.QtGui.QHoverEvent
        • PySide6.QtGui.QIcon
        • PySide6.QtGui.QIconDragEvent
        • PySide6.QtGui.QIconEngine
        • PySide6.QtGui.QImage
        • PySide6.QtGui.QImageIOHandler
        • PySide6.QtGui.QImageReader
        • PySide6.QtGui.QImageWriter
        • PySide6.QtGui.QInputDevice
        • PySide6.QtGui.QInputEvent
        • PySide6.QtGui.QInputMethod
        • PySide6.QtGui.QInputMethodEvent
        • PySide6.QtGui.QInputMethodQueryEvent
        • PySide6.QtGui.QIntValidator
        • PySide6.QtGui.QKeyEvent
        • PySide6.QtGui.QKeySequence
        • PySide6.QtGui.QLinearGradient
        • PySide6.QtGui.QMatrix2x2
        • PySide6.QtGui.QMatrix2x3
        • PySide6.QtGui.QMatrix2x4
        • PySide6.QtGui.QMatrix3x2
        • PySide6.QtGui.QMatrix3x3
        • PySide6.QtGui.QMatrix3x4
        • PySide6.QtGui.QMatrix4x2
        • PySide6.QtGui.QMatrix4x3
        • PySide6.QtGui.QMatrix4x4
        • PySide6.QtGui.QMouseEvent
        • PySide6.QtGui.QMoveEvent
        • PySide6.QtGui.QMovie
        • PySide6.QtGui.QNativeGestureEvent
        • PySide6.QtGui.QNativeInterface
        • PySide6.QtGui.QOffscreenSurface
        • PySide6.QtGui.QOpenGLContext
        • PySide6.QtGui.QOpenGLContextGroup
        • PySide6.QtGui.QOpenGLExtraFunctions
        • PySide6.QtGui.QOpenGLFunctions
        • PySide6.QtGui.QPageLayout
        • PySide6.QtGui.QPageRanges
        • PySide6.QtGui.QPageSize
        • PySide6.QtGui.QPagedPaintDevice
        • PySide6.QtGui.QPaintDevice
        • PySide6.QtGui.QPaintDeviceWindow
        • PySide6.QtGui.QPaintEngine
        • PySide6.QtGui.QPaintEngineState
        • PySide6.QtGui.QPaintEvent
        • PySide6.QtGui.QPainter
        • PySide6.QtGui.QPainterPath
        • PySide6.QtGui.QPainterPathStroker
        • PySide6.QtGui.QPainterStateGuard
        • PySide6.QtGui.QPalette
        • PySide6.QtGui.QPdfOutputIntent
        • PySide6.QtGui.QPdfWriter
        • PySide6.QtGui.QPen
        • PySide6.QtGui.QPicture
        • PySide6.QtGui.QPixelFormat
        • PySide6.QtGui.QPixmap
        • PySide6.QtGui.QPixmapCache
        • PySide6.QtGui.QPlatformSurfaceEvent
        • PySide6.QtGui.QPointerEvent
        • PySide6.QtGui.QPointingDevice
        • PySide6.QtGui.QPointingDeviceUniqueId
        • PySide6.QtGui.QPolygon
        • PySide6.QtGui.QPolygonF
        • PySide6.QtGui.QQuaternion
        • PySide6.QtGui.QRadialGradient
        • PySide6.QtGui.QRasterWindow
        • PySide6.QtGui.QRawFont
        • PySide6.QtGui.QRegion
        • PySide6.QtGui.QRegularExpressionValidator
        • PySide6.QtGui.QResizeEvent
        • PySide6.QtGui.QRgba64
        • PySide6.QtGui.QRhi
        • PySide6.QtGui.QRhiAdapter
        • PySide6.QtGui.QRhiBuffer
        • PySide6.QtGui.QRhiColorAttachment
        • PySide6.QtGui.QRhiCommandBuffer
        • PySide6.QtGui.QRhiComputePipeline
        • PySide6.QtGui.QRhiDepthStencilClearValue
        • PySide6.QtGui.QRhiDriverInfo
        • PySide6.QtGui.QRhiGles2InitParams
        • PySide6.QtGui.QRhiGles2NativeHandles
        • PySide6.QtGui.QRhiGraphicsPipeline
        • PySide6.QtGui.QRhiInitParams
        • PySide6.QtGui.QRhiNativeHandles
        • PySide6.QtGui.QRhiNullInitParams
        • PySide6.QtGui.QRhiReadbackDescription
        • PySide6.QtGui.QRhiReadbackResult
        • PySide6.QtGui.QRhiRenderBuffer
        • PySide6.QtGui.QRhiRenderPassDescriptor
        • PySide6.QtGui.QRhiRenderTarget
        • PySide6.QtGui.QRhiResource
        • PySide6.QtGui.QRhiResourceUpdateBatch
        • PySide6.QtGui.QRhiSampler
        • PySide6.QtGui.QRhiScissor
        • PySide6.QtGui.QRhiShaderResourceBinding
        • PySide6.QtGui.QRhiShaderResourceBindings
        • PySide6.QtGui.QRhiShaderStage
        • PySide6.QtGui.QRhiStats
        • PySide6.QtGui.QRhiSwapChain
        • PySide6.QtGui.QRhiSwapChainRenderTarget
        • PySide6.QtGui.QRhiTexture
        • PySide6.QtGui.QRhiTextureCopyDescription
        • PySide6.QtGui.QRhiTextureRenderTarget
        • PySide6.QtGui.QRhiTextureRenderTargetDescription
        • PySide6.QtGui.QRhiTextureSubresourceUploadDescription
        • PySide6.QtGui.QRhiTextureUploadDescription
        • PySide6.QtGui.QRhiTextureUploadEntry
        • PySide6.QtGui.QRhiVertexInputAttribute
        • PySide6.QtGui.QRhiVertexInputBinding
        • PySide6.QtGui.QRhiVertexInputLayout
        • PySide6.QtGui.QRhiViewport
        • PySide6.QtGui.QScreen
        • PySide6.QtGui.QScrollEvent
        • PySide6.QtGui.QScrollPrepareEvent
        • PySide6.QtGui.QSessionManager
        • PySide6.QtGui.QShader
        • PySide6.QtGui.QShaderCode
        • PySide6.QtGui.QShaderKey
        • PySide6.QtGui.QShaderVersion
        • PySide6.QtGui.QShortcut
        • PySide6.QtGui.QShortcutEvent
        • PySide6.QtGui.QShowEvent
        • PySide6.QtGui.QSinglePointEvent
        • PySide6.QtGui.QStandardItem
        • PySide6.QtGui.QStandardItemModel
        • PySide6.QtGui.QStaticText
        • PySide6.QtGui.QStatusTipEvent
        • PySide6.QtGui.QStyleHints
        • PySide6.QtGui.QSurface
        • PySide6.QtGui.QSurfaceFormat
        • PySide6.QtGui.QSyntaxHighlighter
        • PySide6.QtGui.QTabletEvent
        • PySide6.QtGui.QTextBlock
        • PySide6.QtGui.QTextBlockFormat
        • PySide6.QtGui.QTextBlockGroup
        • PySide6.QtGui.QTextBlockUserData
        • PySide6.QtGui.QTextCharFormat
        • PySide6.QtGui.QTextCursor
        • PySide6.QtGui.QTextDocument
        • PySide6.QtGui.QTextDocumentFragment
        • PySide6.QtGui.QTextDocumentWriter
        • PySide6.QtGui.QTextFormat
        • PySide6.QtGui.QTextFragment
        • PySide6.QtGui.QTextFrame
        • PySide6.QtGui.QTextFrameFormat
        • PySide6.QtGui.QTextImageFormat
        • PySide6.QtGui.QTextInlineObject
        • PySide6.QtGui.QTextItem
        • PySide6.QtGui.QTextLayout
        • PySide6.QtGui.QTextLength
        • PySide6.QtGui.QTextLine
        • PySide6.QtGui.QTextList
        • PySide6.QtGui.QTextListFormat
        • PySide6.QtGui.QTextObject
        • PySide6.QtGui.QTextObjectInterface
        • PySide6.QtGui.QTextOption
        • PySide6.QtGui.QTextTable
        • PySide6.QtGui.QTextTableCell
        • PySide6.QtGui.QTextTableCellFormat
        • PySide6.QtGui.QTextTableFormat
        • PySide6.QtGui.QToolBarChangeEvent
        • PySide6.QtGui.QTouchEvent
        • PySide6.QtGui.QTransform
        • PySide6.QtGui.QUndoCommand
        • PySide6.QtGui.QUndoGroup
        • PySide6.QtGui.QUndoStack
        • PySide6.QtGui.QValidator
        • PySide6.QtGui.QVector2D
        • PySide6.QtGui.QVector3D
        • PySide6.QtGui.QVector4D
        • PySide6.QtGui.QWhatsThisClickedEvent
        • PySide6.QtGui.QWheelEvent
        • PySide6.QtGui.QWindow
        • PySide6.QtGui.QWindowStateChangeEvent
        • PySide6.QtGui.Qt
      • PySide6.QtHelp
        • PySide6.QtHelp.QCompressedHelpInfo
        • PySide6.QtHelp.QHelpContentItem
        • PySide6.QtHelp.QHelpContentModel
        • PySide6.QtHelp.QHelpContentWidget
        • PySide6.QtHelp.QHelpEngine
        • PySide6.QtHelp.QHelpEngineCore
        • PySide6.QtHelp.QHelpFilterData
        • PySide6.QtHelp.QHelpFilterEngine
        • PySide6.QtHelp.QHelpFilterSettingsWidget
        • PySide6.QtHelp.QHelpGlobal
        • PySide6.QtHelp.QHelpIndexModel
        • PySide6.QtHelp.QHelpIndexWidget
        • PySide6.QtHelp.QHelpLink
        • PySide6.QtHelp.QHelpSearchEngine
        • PySide6.QtHelp.QHelpSearchEngineCore
        • PySide6.QtHelp.QHelpSearchQuery
        • PySide6.QtHelp.QHelpSearchQueryWidget
        • PySide6.QtHelp.QHelpSearchResult
        • PySide6.QtHelp.QHelpSearchResultWidget
      • PySide6.QtHttpServer
        • PySide6.QtHttpServer.QAbstractHttpServer
        • PySide6.QtHttpServer.QFutureHttpServerResponse
        • PySide6.QtHttpServer.QHttpServer
        • PySide6.QtHttpServer.QHttpServerConfiguration
        • PySide6.QtHttpServer.QHttpServerRequest
        • PySide6.QtHttpServer.QHttpServerResponder
        • PySide6.QtHttpServer.QHttpServerResponse
        • PySide6.QtHttpServer.QHttpServerRouter
        • PySide6.QtHttpServer.QHttpServerRouterRule
        • PySide6.QtHttpServer.QHttpServerWebSocketUpgradeResponse
      • Overview
      • Limitations and Security
      • Licenses
      • PySide6.QtLocation
        • PySide6.QtLocation.QGeoCodeReply
        • PySide6.QtLocation.QGeoCodingManager
        • PySide6.QtLocation.QGeoCodingManagerEngine
        • PySide6.QtLocation.QGeoManeuver
        • PySide6.QtLocation.QGeoRoute
        • PySide6.QtLocation.QGeoRouteReply
        • PySide6.QtLocation.QGeoRouteRequest
        • PySide6.QtLocation.QGeoRouteSegment
        • PySide6.QtLocation.QGeoRoutingManager
        • PySide6.QtLocation.QGeoRoutingManagerEngine
        • PySide6.QtLocation.QGeoServiceProvider
        • PySide6.QtLocation.QGeoServiceProviderFactory
        • PySide6.QtLocation.QLocation
        • PySide6.QtLocation.QPlace
        • PySide6.QtLocation.QPlaceAttribute
        • PySide6.QtLocation.QPlaceCategory
        • PySide6.QtLocation.QPlaceContactDetail
        • PySide6.QtLocation.QPlaceContent
        • PySide6.QtLocation.QPlaceContentReply
        • PySide6.QtLocation.QPlaceContentRequest
        • PySide6.QtLocation.QPlaceDetailsReply
        • PySide6.QtLocation.QPlaceIcon
        • PySide6.QtLocation.QPlaceIdReply
        • PySide6.QtLocation.QPlaceManager
        • PySide6.QtLocation.QPlaceManagerEngine
        • PySide6.QtLocation.QPlaceMatchReply
        • PySide6.QtLocation.QPlaceMatchRequest
        • PySide6.QtLocation.QPlaceProposedSearchResult
        • PySide6.QtLocation.QPlaceRatings
        • PySide6.QtLocation.QPlaceReply
        • PySide6.QtLocation.QPlaceResult
        • PySide6.QtLocation.QPlaceSearchReply
        • PySide6.QtLocation.QPlaceSearchRequest
        • PySide6.QtLocation.QPlaceSearchResult
        • PySide6.QtLocation.QPlaceSearchSuggestionReply
        • PySide6.QtLocation.QPlaceSupplier
        • PySide6.QtLocation.QPlaceUser
      • Submodules
      • Plugin References and Parameters
      • Licenses
      • PySide6.QtMqtt
        • PySide6.QtMqtt.QMqtt
        • PySide6.QtMqtt.QMqttAuthenticationProperties
        • PySide6.QtMqtt.QMqttClient
        • PySide6.QtMqtt.QMqttConnectionProperties
        • PySide6.QtMqtt.QMqttLastWillProperties
        • PySide6.QtMqtt.QMqttMessage
        • PySide6.QtMqtt.QMqttMessageStatusProperties
        • PySide6.QtMqtt.QMqttPublishProperties
        • PySide6.QtMqtt.QMqttServerConnectionProperties
        • PySide6.QtMqtt.QMqttStringPair
        • PySide6.QtMqtt.QMqttSubscription
        • PySide6.QtMqtt.QMqttSubscriptionProperties
        • PySide6.QtMqtt.QMqttTopicFilter
        • PySide6.QtMqtt.QMqttTopicName
        • PySide6.QtMqtt.QMqttUnsubscriptionProperties
      • PySide6.QtMultimedia
        • PySide6.QtMultimedia.QAbstractVideoBuffer
        • PySide6.QtMultimedia.QAudio
        • PySide6.QtMultimedia.QAudioBuffer
        • PySide6.QtMultimedia.QAudioBufferInput
        • PySide6.QtMultimedia.QAudioBufferOutput
        • PySide6.QtMultimedia.QAudioDecoder
        • PySide6.QtMultimedia.QAudioDevice
        • PySide6.QtMultimedia.QAudioFormat
        • PySide6.QtMultimedia.QAudioInput
        • PySide6.QtMultimedia.QAudioOutput
        • PySide6.QtMultimedia.QAudioSink
        • PySide6.QtMultimedia.QAudioSource
        • PySide6.QtMultimedia.QCamera
        • PySide6.QtMultimedia.QCameraDevice
        • PySide6.QtMultimedia.QCameraFormat
        • PySide6.QtMultimedia.QCapturableWindow
        • PySide6.QtMultimedia.QImageCapture
        • PySide6.QtMultimedia.QMediaCaptureSession
        • PySide6.QtMultimedia.QMediaDevices
        • PySide6.QtMultimedia.QMediaFormat
        • PySide6.QtMultimedia.QMediaMetaData
        • PySide6.QtMultimedia.QMediaPlayer
        • PySide6.QtMultimedia.QMediaRecorder
        • PySide6.QtMultimedia.QMediaTimeRange
        • PySide6.QtMultimedia.QPlaybackOptions
        • PySide6.QtMultimedia.QScreenCapture
        • PySide6.QtMultimedia.QSoundEffect
        • PySide6.QtMultimedia.QVideoFrame
        • PySide6.QtMultimedia.QVideoFrameFormat
        • PySide6.QtMultimedia.QVideoFrameInput
        • PySide6.QtMultimedia.QVideoSink
        • PySide6.QtMultimedia.QWaveDecoder
        • PySide6.QtMultimedia.QWindowCapture
        • PySide6.QtMultimedia.QtAudio
        • PySide6.QtMultimedia.QtVideo
      • PySide6.QtMultimediaWidgets
        • PySide6.QtMultimediaWidgets.QGraphicsVideoItem
        • PySide6.QtMultimediaWidgets.QVideoWidget
      • PySide6.QtNetwork
        • Enumerations
        • PySide6.QtNetwork.QAbstractNetworkCache
        • PySide6.QtNetwork.QAbstractSocket
        • PySide6.QtNetwork.QAuthenticator
        • PySide6.QtNetwork.QDnsDomainNameRecord
        • PySide6.QtNetwork.QDnsHostAddressRecord
        • PySide6.QtNetwork.QDnsLookup
        • PySide6.QtNetwork.QDnsMailExchangeRecord
        • PySide6.QtNetwork.QDnsServiceRecord
        • PySide6.QtNetwork.QDnsTextRecord
        • PySide6.QtNetwork.QDnsTlsAssociationRecord
        • PySide6.QtNetwork.QDtls
        • PySide6.QtNetwork.QDtlsClientVerifier
        • PySide6.QtNetwork.QFormDataBuilder
        • PySide6.QtNetwork.QFormDataPartBuilder
        • PySide6.QtNetwork.QHostAddress
        • PySide6.QtNetwork.QHostInfo
        • PySide6.QtNetwork.QHstsPolicy
        • PySide6.QtNetwork.QHttp1Configuration
        • PySide6.QtNetwork.QHttp2Configuration
        • PySide6.QtNetwork.QHttpHeaders
        • PySide6.QtNetwork.QHttpMultiPart
        • PySide6.QtNetwork.QHttpPart
        • PySide6.QtNetwork.QIPv6Address
        • PySide6.QtNetwork.QLocalServer
        • PySide6.QtNetwork.QLocalSocket
        • PySide6.QtNetwork.QNetworkAccessManager
        • PySide6.QtNetwork.QNetworkAddressEntry
        • PySide6.QtNetwork.QNetworkCacheMetaData
        • PySide6.QtNetwork.QNetworkCookie
        • PySide6.QtNetwork.QNetworkCookieJar
        • PySide6.QtNetwork.QNetworkDatagram
        • PySide6.QtNetwork.QNetworkDiskCache
        • PySide6.QtNetwork.QNetworkInformation
        • PySide6.QtNetwork.QNetworkInterface
        • PySide6.QtNetwork.QNetworkProxy
        • PySide6.QtNetwork.QNetworkProxyFactory
        • PySide6.QtNetwork.QNetworkProxyQuery
        • PySide6.QtNetwork.QNetworkReply
        • PySide6.QtNetwork.QNetworkRequest
        • PySide6.QtNetwork.QNetworkRequestFactory
        • PySide6.QtNetwork.QOcspResponse
        • PySide6.QtNetwork.QPasswordDigestor
        • PySide6.QtNetwork.QRestAccessManager
        • PySide6.QtNetwork.QRestReply
        • PySide6.QtNetwork.QSsl
        • PySide6.QtNetwork.QSslCertificate
        • PySide6.QtNetwork.QSslCertificateExtension
        • PySide6.QtNetwork.QSslCipher
        • PySide6.QtNetwork.QSslConfiguration
        • PySide6.QtNetwork.QSslDiffieHellmanParameters
        • PySide6.QtNetwork.QSslEllipticCurve
        • PySide6.QtNetwork.QSslError
        • PySide6.QtNetwork.QSslKey
        • PySide6.QtNetwork.QSslPreSharedKeyAuthenticator
        • PySide6.QtNetwork.QSslServer
        • PySide6.QtNetwork.QSslSocket
        • PySide6.QtNetwork.QTcpServer
        • PySide6.QtNetwork.QTcpSocket
        • PySide6.QtNetwork.QUdpSocket
      • PySide6.QtNetworkAuth
        • PySide6.QtNetworkAuth.QAbstractOAuth
        • PySide6.QtNetworkAuth.QAbstractOAuth2
        • PySide6.QtNetworkAuth.QAbstractOAuthReplyHandler
        • PySide6.QtNetworkAuth.QOAuth1
        • PySide6.QtNetworkAuth.QOAuth1Signature
        • PySide6.QtNetworkAuth.QOAuth2AuthorizationCodeFlow
        • PySide6.QtNetworkAuth.QOAuth2DeviceAuthorizationFlow
        • PySide6.QtNetworkAuth.QOAuthHttpServerReplyHandler
        • PySide6.QtNetworkAuth.QOAuthOobReplyHandler
        • PySide6.QtNetworkAuth.QOAuthUriSchemeReplyHandler
      • PySide6.QtNfc
        • PySide6.QtNfc.QNdefFilter
        • PySide6.QtNfc.QNdefMessage
        • PySide6.QtNfc.QNdefNfcIconRecord
        • PySide6.QtNfc.QNdefNfcSmartPosterRecord
        • PySide6.QtNfc.QNdefNfcTextRecord
        • PySide6.QtNfc.QNdefNfcUriRecord
        • PySide6.QtNfc.QNdefRecord
        • PySide6.QtNfc.QNearFieldManager
        • PySide6.QtNfc.QNearFieldTarget
      • PySide6.QtOpcUa
        • PySide6.QtOpcUa.QOpcUa
        • PySide6.QtOpcUa.QOpcUaAddNodeItem
        • PySide6.QtOpcUa.QOpcUaAddReferenceItem
        • PySide6.QtOpcUa.QOpcUaApplicationDescription
        • PySide6.QtOpcUa.QOpcUaApplicationIdentity
        • PySide6.QtOpcUa.QOpcUaApplicationRecordDataType
        • PySide6.QtOpcUa.QOpcUaArgument
        • PySide6.QtOpcUa.QOpcUaAttributeOperand
        • PySide6.QtOpcUa.QOpcUaAuthenticationInformation
        • PySide6.QtOpcUa.QOpcUaAxisInformation
        • PySide6.QtOpcUa.QOpcUaBinaryDataEncoding
        • PySide6.QtOpcUa.QOpcUaBrowsePathTarget
        • PySide6.QtOpcUa.QOpcUaBrowseRequest
        • PySide6.QtOpcUa.QOpcUaClient
        • PySide6.QtOpcUa.QOpcUaComplexNumber
        • PySide6.QtOpcUa.QOpcUaConnectionSettings
        • PySide6.QtOpcUa.QOpcUaContentFilterElement
        • PySide6.QtOpcUa.QOpcUaContentFilterElementResult
        • PySide6.QtOpcUa.QOpcUaDataValue
        • PySide6.QtOpcUa.QOpcUaDeleteReferenceItem
        • PySide6.QtOpcUa.QOpcUaDiagnosticInfo
        • PySide6.QtOpcUa.QOpcUaDoubleComplexNumber
        • PySide6.QtOpcUa.QOpcUaEUInformation
        • PySide6.QtOpcUa.QOpcUaElementOperand
        • PySide6.QtOpcUa.QOpcUaEndpointDescription
        • PySide6.QtOpcUa.QOpcUaEnumDefinition
        • PySide6.QtOpcUa.QOpcUaEnumField
        • PySide6.QtOpcUa.QOpcUaErrorState
        • PySide6.QtOpcUa.QOpcUaEventFilterResult
        • PySide6.QtOpcUa.QOpcUaExpandedNodeId
        • PySide6.QtOpcUa.QOpcUaExtensionObject
        • PySide6.QtOpcUa.QOpcUaGenericStructHandler
        • PySide6.QtOpcUa.QOpcUaGenericStructValue
        • PySide6.QtOpcUa.QOpcUaHistoryData
        • PySide6.QtOpcUa.QOpcUaHistoryEvent
        • PySide6.QtOpcUa.QOpcUaHistoryReadEventRequest
        • PySide6.QtOpcUa.QOpcUaHistoryReadRawRequest
        • PySide6.QtOpcUa.QOpcUaHistoryReadResponse
        • PySide6.QtOpcUa.QOpcUaKeyPair
        • PySide6.QtOpcUa.QOpcUaLiteralOperand
        • PySide6.QtOpcUa.QOpcUaLocalizedText
        • PySide6.QtOpcUa.QOpcUaMonitoringParameters
        • PySide6.QtOpcUa.QOpcUaMultiDimensionalArray
        • PySide6.QtOpcUa.QOpcUaNode
        • PySide6.QtOpcUa.QOpcUaNodeCreationAttributes
        • PySide6.QtOpcUa.QOpcUaPkiConfiguration
        • PySide6.QtOpcUa.QOpcUaPlugin
        • PySide6.QtOpcUa.QOpcUaProvider
        • PySide6.QtOpcUa.QOpcUaQualifiedName
        • PySide6.QtOpcUa.QOpcUaRange
        • PySide6.QtOpcUa.QOpcUaReadItem
        • PySide6.QtOpcUa.QOpcUaReadResult
        • PySide6.QtOpcUa.QOpcUaReferenceDescription
        • PySide6.QtOpcUa.QOpcUaRelativePathElement
        • PySide6.QtOpcUa.QOpcUaSimpleAttributeOperand
        • PySide6.QtOpcUa.QOpcUaStructureDefinition
        • PySide6.QtOpcUa.QOpcUaStructureField
        • PySide6.QtOpcUa.QOpcUaUserTokenPolicy
        • PySide6.QtOpcUa.QOpcUaVariant
        • PySide6.QtOpcUa.QOpcUaWriteItem
        • PySide6.QtOpcUa.QOpcUaWriteResult
        • PySide6.QtOpcUa.QOpcUaX509CertificateSigningRequest
        • PySide6.QtOpcUa.QOpcUaX509DistinguishedName
        • PySide6.QtOpcUa.QOpcUaX509Extension
        • PySide6.QtOpcUa.QOpcUaX509ExtensionBasicConstraints
        • PySide6.QtOpcUa.QOpcUaX509ExtensionExtendedKeyUsage
        • PySide6.QtOpcUa.QOpcUaX509ExtensionKeyUsage
        • PySide6.QtOpcUa.QOpcUaX509ExtensionSubjectAlternativeName
        • PySide6.QtOpcUa.QOpcUaXValue
      • PySide6.QtOpenGL
        • PySide6.QtOpenGL.QAbstractOpenGLFunctions
        • PySide6.QtOpenGL.QOpenGLBuffer
        • PySide6.QtOpenGL.QOpenGLDebugLogger
        • PySide6.QtOpenGL.QOpenGLDebugMessage
        • PySide6.QtOpenGL.QOpenGLFramebufferObject
        • PySide6.QtOpenGL.QOpenGLFramebufferObjectFormat
        • PySide6.QtOpenGL.QOpenGLPaintDevice
        • PySide6.QtOpenGL.QOpenGLPixelTransferOptions
        • PySide6.QtOpenGL.QOpenGLShader
        • PySide6.QtOpenGL.QOpenGLShaderProgram
        • PySide6.QtOpenGL.QOpenGLTexture
        • PySide6.QtOpenGL.QOpenGLTextureBlitter
        • PySide6.QtOpenGL.QOpenGLTimeMonitor
        • PySide6.QtOpenGL.QOpenGLTimerQuery
        • PySide6.QtOpenGL.QOpenGLVersionFunctionsFactory
        • PySide6.QtOpenGL.QOpenGLVersionProfile
        • PySide6.QtOpenGL.QOpenGLVertexArrayObject
        • PySide6.QtOpenGL.QOpenGLWindow
      • PySide6.QtOpenGLWidgets
        • PySide6.QtOpenGLWidgets.QOpenGLWidget
      • PySide6.QtPdf
        • PySide6.QtPdf.QPdfBookmarkModel
        • PySide6.QtPdf.QPdfDocument
        • PySide6.QtPdf.QPdfDocumentRenderOptions
        • PySide6.QtPdf.QPdfLink
        • PySide6.QtPdf.QPdfLinkModel
        • PySide6.QtPdf.QPdfPageNavigator
        • PySide6.QtPdf.QPdfPageRenderer
        • PySide6.QtPdf.QPdfSearchModel
        • PySide6.QtPdf.QPdfSelection
      • Articles and Guides
      • Licenses and Attributions
      • PySide6.QtPdfWidgets
        • PySide6.QtPdfWidgets.QPdfPageSelector
        • PySide6.QtPdfWidgets.QPdfView
      • PySide6.QtPositioning
        • PySide6.QtPositioning.QGeoAddress
        • PySide6.QtPositioning.QGeoAreaMonitorInfo
        • PySide6.QtPositioning.QGeoAreaMonitorSource
        • PySide6.QtPositioning.QGeoCircle
        • PySide6.QtPositioning.QGeoCoordinate
        • PySide6.QtPositioning.QGeoLocation
        • PySide6.QtPositioning.QGeoPath
        • PySide6.QtPositioning.QGeoPolygon
        • PySide6.QtPositioning.QGeoPositionInfo
        • PySide6.QtPositioning.QGeoPositionInfoSource
        • PySide6.QtPositioning.QGeoPositionInfoSourceFactory
        • PySide6.QtPositioning.QGeoRectangle
        • PySide6.QtPositioning.QGeoSatelliteInfo
        • PySide6.QtPositioning.QGeoSatelliteInfoSource
        • PySide6.QtPositioning.QGeoShape
        • PySide6.QtPositioning.QNmeaPositionInfoSource
        • PySide6.QtPositioning.QNmeaSatelliteInfoSource
      • PySide6.QtPrintSupport
        • PySide6.QtPrintSupport.QAbstractPrintDialog
        • PySide6.QtPrintSupport.QPageSetupDialog
        • PySide6.QtPrintSupport.QPrintDialog
        • PySide6.QtPrintSupport.QPrintEngine
        • PySide6.QtPrintSupport.QPrintPreviewDialog
        • PySide6.QtPrintSupport.QPrintPreviewWidget
        • PySide6.QtPrintSupport.QPrinter
        • PySide6.QtPrintSupport.QPrinterInfo
      • PySide6.QtQml
        • Functions
        • Enumerations
        • PySide6.QtQml.QJSEngine
        • PySide6.QtQml.QJSManagedValue
        • PySide6.QtQml.QJSPrimitiveValue
        • PySide6.QtQml.QJSValue
        • PySide6.QtQml.QJSValueIterator
        • PySide6.QtQml.QQmlAbstractUrlInterceptor
        • PySide6.QtQml.QQmlApplicationEngine
        • PySide6.QtQml.QQmlComponent
        • PySide6.QtQml.QQmlContext
        • PySide6.QtQml.QQmlDebuggingEnabler
        • PySide6.QtQml.QQmlEngine
        • PySide6.QtQml.QQmlError
        • PySide6.QtQml.QQmlExpression
        • PySide6.QtQml.QQmlExtensionInterface
        • PySide6.QtQml.QQmlExtensionPlugin
        • PySide6.QtQml.QQmlFile
        • PySide6.QtQml.QQmlFileSelector
        • PySide6.QtQml.QQmlImageProviderBase
        • PySide6.QtQml.QQmlIncubationController
        • PySide6.QtQml.QQmlIncubator
        • PySide6.QtQml.QQmlListReference
        • PySide6.QtQml.QQmlNetworkAccessManagerFactory
        • PySide6.QtQml.QQmlParserStatus
        • PySide6.QtQml.QQmlProperty
        • PySide6.QtQml.QQmlPropertyMap
        • PySide6.QtQml.QQmlPropertyValueSource
        • PySide6.QtQml.QQmlScriptString
        • PySide6.QtQml.QQmlTypesExtensionInterface
        • PySide6.QtQml.ListProperty
        • QPyQmlParserStatus
        • QPyQmlPropertyValueSource
      • PySide6.QtQuick
        • PySide6.QtQuick.QQuickAsyncImageProvider
        • PySide6.QtQuick.QQuickFramebufferObject
        • PySide6.QtQuick.QQuickGraphicsConfiguration
        • PySide6.QtQuick.QQuickGraphicsDevice
        • PySide6.QtQuick.QQuickImageProvider
        • PySide6.QtQuick.QQuickImageResponse
        • PySide6.QtQuick.QQuickItem
        • PySide6.QtQuick.QQuickItemGrabResult
        • PySide6.QtQuick.QQuickOpenGLUtils
        • PySide6.QtQuick.QQuickPaintedItem
        • PySide6.QtQuick.QQuickRenderControl
        • PySide6.QtQuick.QQuickRenderTarget
        • PySide6.QtQuick.QQuickRhiItem
        • PySide6.QtQuick.QQuickRhiItemRenderer
        • PySide6.QtQuick.QQuickTextDocument
        • PySide6.QtQuick.QQuickTextureFactory
        • PySide6.QtQuick.QQuickTransform
        • PySide6.QtQuick.QQuickView
        • PySide6.QtQuick.QQuickWindow
        • PySide6.QtQuick.QSGBasicGeometryNode
        • PySide6.QtQuick.QSGClipNode
        • PySide6.QtQuick.QSGDynamicTexture
        • PySide6.QtQuick.QSGFlatColorMaterial
        • PySide6.QtQuick.QSGGeometry
        • PySide6.QtQuick.QSGGeometryNode
        • PySide6.QtQuick.QSGImageNode
        • PySide6.QtQuick.QSGMaterial
        • PySide6.QtQuick.QSGMaterialShader
        • PySide6.QtQuick.QSGMaterialType
        • PySide6.QtQuick.QSGNinePatchNode
        • PySide6.QtQuick.QSGNode
        • PySide6.QtQuick.QSGNodeVisitor
        • PySide6.QtQuick.QSGOpacityNode
        • PySide6.QtQuick.QSGOpaqueTextureMaterial
        • PySide6.QtQuick.QSGRectangleNode
        • PySide6.QtQuick.QSGRenderNode
        • PySide6.QtQuick.QSGRendererInterface
        • PySide6.QtQuick.QSGRootNode
        • PySide6.QtQuick.QSGSimpleRectNode
        • PySide6.QtQuick.QSGSimpleTextureNode
        • PySide6.QtQuick.QSGTextNode
        • PySide6.QtQuick.QSGTexture
        • PySide6.QtQuick.QSGTextureMaterial
        • PySide6.QtQuick.QSGTextureProvider
        • PySide6.QtQuick.QSGTransformNode
        • PySide6.QtQuick.QSGVertexColorMaterial
      • PySide6.QtQuick3D
        • PySide6.QtQuick3D.QQuick3D
        • PySide6.QtQuick3D.QQuick3DGeometry
        • PySide6.QtQuick3D.QQuick3DInstancing
        • PySide6.QtQuick3D.QQuick3DObject
        • PySide6.QtQuick3D.QQuick3DRenderExtension
        • PySide6.QtQuick3D.QQuick3DTextureData
      • Building From Source
      • Module Evolution
      • Articles and Guides
      • Related Modules
      • Qt Academy Courses
      • Licenses and Attributions
      • PySide6.QtQuickControls2
        • PySide6.QtQuickControls2.QQuickAttachedPropertyPropagator
        • PySide6.QtQuickControls2.QQuickStyle
      • PySide6.QtQuickTest
        • Functions
      • PySide6.QtQuickWidgets
        • PySide6.QtQuickWidgets.QQuickWidget
      • Licenses and Attributions
      • PySide6.QtRemoteObjects
        • PySide6.QtRemoteObjects.QAbstractItemModelReplica
        • PySide6.QtRemoteObjects.QConnectionAbstractServer
        • PySide6.QtRemoteObjects.QRemoteObjectAbstractPersistedStore
        • PySide6.QtRemoteObjects.QRemoteObjectDynamicReplica
        • PySide6.QtRemoteObjects.QRemoteObjectHost
        • PySide6.QtRemoteObjects.QRemoteObjectHostBase
        • PySide6.QtRemoteObjects.QRemoteObjectNode
        • PySide6.QtRemoteObjects.QRemoteObjectPendingCall
        • PySide6.QtRemoteObjects.QRemoteObjectPendingCallWatcher
        • PySide6.QtRemoteObjects.QRemoteObjectRegistry
        • PySide6.QtRemoteObjects.QRemoteObjectRegistryHost
        • PySide6.QtRemoteObjects.QRemoteObjectReplica
        • PySide6.QtRemoteObjects.QRemoteObjectSettingsStore
        • PySide6.QtRemoteObjects.QRemoteObjectSourceLocationInfo
        • PySide6.QtRemoteObjects.QtROClientFactory
        • PySide6.QtRemoteObjects.QtROClientIoDevice
        • PySide6.QtRemoteObjects.QtROIoDeviceBase
        • PySide6.QtRemoteObjects.QtROServerFactory
        • PySide6.QtRemoteObjects.QtROServerIoDevice
        • PySide6.QtRemoteObjects.QtRemoteObjects
      • PySide6.QtScxml
        • PySide6.QtScxml.QScxmlCompiler
        • PySide6.QtScxml.QScxmlCppDataModel
        • PySide6.QtScxml.QScxmlDataModel
        • PySide6.QtScxml.QScxmlDynamicScxmlServiceFactory
        • PySide6.QtScxml.QScxmlError
        • PySide6.QtScxml.QScxmlEvent
        • PySide6.QtScxml.QScxmlExecutableContent
        • PySide6.QtScxml.QScxmlInvokableService
        • PySide6.QtScxml.QScxmlInvokableServiceFactory
        • PySide6.QtScxml.QScxmlNullDataModel
        • PySide6.QtScxml.QScxmlStateMachine
        • PySide6.QtScxml.QScxmlStaticScxmlServiceFactory
        • PySide6.QtScxml.QScxmlTableData
      • PySide6.QtSensors
        • PySide6.QtSensors.QAccelerometer
        • PySide6.QtSensors.QAccelerometerFilter
        • PySide6.QtSensors.QAccelerometerReading
        • PySide6.QtSensors.QAmbientLightFilter
        • PySide6.QtSensors.QAmbientLightReading
        • PySide6.QtSensors.QAmbientLightSensor
        • PySide6.QtSensors.QAmbientTemperatureFilter
        • PySide6.QtSensors.QAmbientTemperatureReading
        • PySide6.QtSensors.QAmbientTemperatureSensor
        • PySide6.QtSensors.QCompass
        • PySide6.QtSensors.QCompassFilter
        • PySide6.QtSensors.QCompassReading
        • PySide6.QtSensors.QGyroscope
        • PySide6.QtSensors.QGyroscopeFilter
        • PySide6.QtSensors.QGyroscopeReading
        • PySide6.QtSensors.QHumidityFilter
        • PySide6.QtSensors.QHumidityReading
        • PySide6.QtSensors.QHumiditySensor
        • PySide6.QtSensors.QIRProximityFilter
        • PySide6.QtSensors.QIRProximityReading
        • PySide6.QtSensors.QIRProximitySensor
        • PySide6.QtSensors.QLidFilter
        • PySide6.QtSensors.QLidReading
        • PySide6.QtSensors.QLidSensor
        • PySide6.QtSensors.QLightFilter
        • PySide6.QtSensors.QLightReading
        • PySide6.QtSensors.QLightSensor
        • PySide6.QtSensors.QMagnetometer
        • PySide6.QtSensors.QMagnetometerFilter
        • PySide6.QtSensors.QMagnetometerReading
        • PySide6.QtSensors.QOrientationFilter
        • PySide6.QtSensors.QOrientationReading
        • PySide6.QtSensors.QOrientationSensor
        • PySide6.QtSensors.QPressureFilter
        • PySide6.QtSensors.QPressureReading
        • PySide6.QtSensors.QPressureSensor
        • PySide6.QtSensors.QProximityFilter
        • PySide6.QtSensors.QProximityReading
        • PySide6.QtSensors.QProximitySensor
        • PySide6.QtSensors.QRotationFilter
        • PySide6.QtSensors.QRotationReading
        • PySide6.QtSensors.QRotationSensor
        • PySide6.QtSensors.QSensor
        • PySide6.QtSensors.QSensorBackend
        • PySide6.QtSensors.QSensorBackendFactory
        • PySide6.QtSensors.QSensorChangesInterface
        • PySide6.QtSensors.QSensorFilter
        • PySide6.QtSensors.QSensorManager
        • PySide6.QtSensors.QSensorPluginInterface
        • PySide6.QtSensors.QSensorReading
        • PySide6.QtSensors.QTapFilter
        • PySide6.QtSensors.QTapReading
        • PySide6.QtSensors.QTapSensor
        • PySide6.QtSensors.QTiltFilter
        • PySide6.QtSensors.QTiltReading
        • PySide6.QtSensors.QTiltSensor
        • PySide6.QtSensors.qoutputrange
      • PySide6.QtSerialBus
        • PySide6.QtSerialBus.QCanBus
        • PySide6.QtSerialBus.QCanBusDevice
        • PySide6.QtSerialBus.QCanBusDeviceInfo
        • PySide6.QtSerialBus.QCanBusFactory
        • PySide6.QtSerialBus.QCanBusFrame
        • PySide6.QtSerialBus.QCanDbcFileParser
        • PySide6.QtSerialBus.QCanFrameProcessor
        • PySide6.QtSerialBus.QCanMessageDescription
        • PySide6.QtSerialBus.QCanSignalDescription
        • PySide6.QtSerialBus.QCanUniqueIdDescription
        • PySide6.QtSerialBus.QModbusClient
        • PySide6.QtSerialBus.QModbusDataUnit
        • PySide6.QtSerialBus.QModbusDevice
        • PySide6.QtSerialBus.QModbusDeviceIdentification
        • PySide6.QtSerialBus.QModbusExceptionResponse
        • PySide6.QtSerialBus.QModbusPdu
        • PySide6.QtSerialBus.QModbusReply
        • PySide6.QtSerialBus.QModbusRequest
        • PySide6.QtSerialBus.QModbusResponse
        • PySide6.QtSerialBus.QModbusRtuSerialClient
        • PySide6.QtSerialBus.QModbusRtuSerialServer
        • PySide6.QtSerialBus.QModbusServer
        • PySide6.QtSerialBus.QModbusTcpClient
        • PySide6.QtSerialBus.QModbusTcpConnectionObserver
        • PySide6.QtSerialBus.QModbusTcpServer
        • PySide6.QtSerialBus.QtCanBus
      • PySide6.QtSerialPort
        • PySide6.QtSerialPort.QSerialPort
        • PySide6.QtSerialPort.QSerialPortInfo
      • PySide6.QtSpatialAudio
        • PySide6.QtSpatialAudio.QAmbientSound
        • PySide6.QtSpatialAudio.QAudioEngine
        • PySide6.QtSpatialAudio.QAudioListener
        • PySide6.QtSpatialAudio.QAudioRoom
        • PySide6.QtSpatialAudio.QSpatialSound
      • Getting started
      • QML Types
      • Licenses and Attributions
      • PySide6.QtSql
        • PySide6.QtSql.QSql
        • PySide6.QtSql.QSqlDatabase
        • PySide6.QtSql.QSqlDriver
        • PySide6.QtSql.QSqlDriverCreatorBase
        • PySide6.QtSql.QSqlError
        • PySide6.QtSql.QSqlField
        • PySide6.QtSql.QSqlIndex
        • PySide6.QtSql.QSqlQuery
        • PySide6.QtSql.QSqlQueryModel
        • PySide6.QtSql.QSqlRecord
        • PySide6.QtSql.QSqlRelation
        • PySide6.QtSql.QSqlRelationalTableModel
        • PySide6.QtSql.QSqlResult
        • PySide6.QtSql.QSqlTableModel
      • PySide6.QtStateMachine
        • PySide6.QtStateMachine.QAbstractState
        • PySide6.QtStateMachine.QAbstractTransition
        • PySide6.QtStateMachine.QEventTransition
        • PySide6.QtStateMachine.QFinalState
        • PySide6.QtStateMachine.QHistoryState
        • PySide6.QtStateMachine.QKeyEventTransition
        • PySide6.QtStateMachine.QMouseEventTransition
        • PySide6.QtStateMachine.QSignalTransition
        • PySide6.QtStateMachine.QState
        • PySide6.QtStateMachine.QStateMachine
      • Articles and Guides
      • Module Evolution
      • Licenses and Trademarks
      • PySide6.QtSvg
        • PySide6.QtSvg.QSvgGenerator
        • PySide6.QtSvg.QSvgRenderer
        • PySide6.QtSvg.QtSvg
      • PySide6.QtSvgWidgets
        • PySide6.QtSvgWidgets.QGraphicsSvgItem
        • PySide6.QtSvgWidgets.QSvgWidget
      • PySide6.QtTest
        • PySide6.QtTest.QAbstractItemModelTester
        • PySide6.QtTest.QSignalSpy
        • PySide6.QtTest.QTest
      • PySide6.QtTextToSpeech
        • PySide6.QtTextToSpeech.QTextToSpeech
        • PySide6.QtTextToSpeech.QTextToSpeechEngine
        • PySide6.QtTextToSpeech.QVoice
      • Overviews and Important Topics
      • QML Types
      • Licenses and Attributions
      • PySide6.QtUiTools
        • Functions
        • PySide6.QtUiTools.QUiLoader
      • PySide6.QtWebChannel
        • PySide6.QtWebChannel.QWebChannel
        • PySide6.QtWebChannel.QWebChannelAbstractTransport
      • PySide6.QtWebEngineCore
        • Functions
        • PySide6.QtWebEngineCore.QWebEngineCertificateError
        • PySide6.QtWebEngineCore.QWebEngineClientCertificateSelection
        • PySide6.QtWebEngineCore.QWebEngineClientCertificateStore
        • PySide6.QtWebEngineCore.QWebEngineClientHints
        • PySide6.QtWebEngineCore.QWebEngineContextMenuRequest
        • PySide6.QtWebEngineCore.QWebEngineCookieStore
        • PySide6.QtWebEngineCore.QWebEngineDesktopMediaRequest
        • PySide6.QtWebEngineCore.QWebEngineDownloadRequest
        • PySide6.QtWebEngineCore.QWebEngineExtensionInfo
        • PySide6.QtWebEngineCore.QWebEngineExtensionManager
        • PySide6.QtWebEngineCore.QWebEngineFileSystemAccessRequest
        • PySide6.QtWebEngineCore.QWebEngineFindTextResult
        • PySide6.QtWebEngineCore.QWebEngineFrame
        • PySide6.QtWebEngineCore.QWebEngineFullScreenRequest
        • PySide6.QtWebEngineCore.QWebEngineGlobalSettings
        • PySide6.QtWebEngineCore.QWebEngineHistory
        • PySide6.QtWebEngineCore.QWebEngineHistoryItem
        • PySide6.QtWebEngineCore.QWebEngineHistoryModel
        • PySide6.QtWebEngineCore.QWebEngineHttpRequest
        • PySide6.QtWebEngineCore.QWebEngineLoadingInfo
        • PySide6.QtWebEngineCore.QWebEngineNavigationRequest
        • PySide6.QtWebEngineCore.QWebEngineNewWindowRequest
        • PySide6.QtWebEngineCore.QWebEngineNotification
        • PySide6.QtWebEngineCore.QWebEnginePage
        • PySide6.QtWebEngineCore.QWebEnginePermission
        • PySide6.QtWebEngineCore.QWebEngineProfile
        • PySide6.QtWebEngineCore.QWebEngineProfileBuilder
        • PySide6.QtWebEngineCore.QWebEngineQuotaRequest
        • PySide6.QtWebEngineCore.QWebEngineRegisterProtocolHandlerRequest
        • PySide6.QtWebEngineCore.QWebEngineScript
        • PySide6.QtWebEngineCore.QWebEngineScriptCollection
        • PySide6.QtWebEngineCore.QWebEngineSettings
        • PySide6.QtWebEngineCore.QWebEngineUrlRequestInfo
        • PySide6.QtWebEngineCore.QWebEngineUrlRequestInterceptor
        • PySide6.QtWebEngineCore.QWebEngineUrlRequestJob
        • PySide6.QtWebEngineCore.QWebEngineUrlScheme
        • PySide6.QtWebEngineCore.QWebEngineUrlSchemeHandler
        • PySide6.QtWebEngineCore.QWebEngineWebAuthPinRequest
        • PySide6.QtWebEngineCore.QWebEngineWebAuthUxRequest
      • PySide6.QtWebEngineQuick
        • PySide6.QtWebEngineQuick.QQuickWebEngineDownloadRequest
        • PySide6.QtWebEngineQuick.QQuickWebEngineProfile
        • PySide6.QtWebEngineQuick.QtWebEngineQuick
      • PySide6.QtWebEngineWidgets
        • PySide6.QtWebEngineWidgets.QWebEngineView
      • PySide6.QtWebSockets
        • PySide6.QtWebSockets.QMaskGenerator
        • PySide6.QtWebSockets.QWebSocket
        • PySide6.QtWebSockets.QWebSocketCorsAuthenticator
        • PySide6.QtWebSockets.QWebSocketHandshakeOptions
        • PySide6.QtWebSockets.QWebSocketProtocol
        • PySide6.QtWebSockets.QWebSocketServer
      • PySide6.QtWebView
        • PySide6.QtWebView.QWebView
        • PySide6.QtWebView.QWebViewLoadingInfo
        • PySide6.QtWebView.QWebViewSettings
        • PySide6.QtWebView.QtWebView
      • PySide6.QtWidgets
        • Functions
        • PySide6.QtWidgets.QAbstractButton
        • PySide6.QtWidgets.QAbstractGraphicsShapeItem
        • PySide6.QtWidgets.QAbstractItemDelegate
        • PySide6.QtWidgets.QAbstractItemView
        • PySide6.QtWidgets.QAbstractScrollArea
        • PySide6.QtWidgets.QAbstractSlider
        • PySide6.QtWidgets.QAbstractSpinBox
        • PySide6.QtWidgets.QAccessibleWidget
        • PySide6.QtWidgets.QApplication
        • PySide6.QtWidgets.QBoxLayout
        • PySide6.QtWidgets.QButtonGroup
        • PySide6.QtWidgets.QCalendarWidget
        • PySide6.QtWidgets.QCheckBox
        • PySide6.QtWidgets.QColorDialog
        • PySide6.QtWidgets.QColormap
        • PySide6.QtWidgets.QColumnView
        • PySide6.QtWidgets.QComboBox
        • PySide6.QtWidgets.QCommandLinkButton
        • PySide6.QtWidgets.QCommonStyle
        • PySide6.QtWidgets.QCompleter
        • PySide6.QtWidgets.QDataWidgetMapper
        • PySide6.QtWidgets.QDateEdit
        • PySide6.QtWidgets.QDateTimeEdit
        • PySide6.QtWidgets.QDial
        • PySide6.QtWidgets.QDialog
        • PySide6.QtWidgets.QDialogButtonBox
        • PySide6.QtWidgets.QDockWidget
        • PySide6.QtWidgets.QDoubleSpinBox
        • PySide6.QtWidgets.QErrorMessage
        • PySide6.QtWidgets.QFileDialog
        • PySide6.QtWidgets.QFileIconProvider
        • PySide6.QtWidgets.QFileSystemModel
        • PySide6.QtWidgets.QFocusFrame
        • PySide6.QtWidgets.QFontComboBox
        • PySide6.QtWidgets.QFontDialog
        • PySide6.QtWidgets.QFormLayout
        • PySide6.QtWidgets.QFrame
        • PySide6.QtWidgets.QGesture
        • PySide6.QtWidgets.QGestureEvent
        • PySide6.QtWidgets.QGestureRecognizer
        • PySide6.QtWidgets.QGraphicsAnchor
        • PySide6.QtWidgets.QGraphicsAnchorLayout
        • PySide6.QtWidgets.QGraphicsBlurEffect
        • PySide6.QtWidgets.QGraphicsColorizeEffect
        • PySide6.QtWidgets.QGraphicsDropShadowEffect
        • PySide6.QtWidgets.QGraphicsEffect
        • PySide6.QtWidgets.QGraphicsEllipseItem
        • PySide6.QtWidgets.QGraphicsGridLayout
        • PySide6.QtWidgets.QGraphicsItem
        • PySide6.QtWidgets.QGraphicsItemAnimation
        • PySide6.QtWidgets.QGraphicsItemGroup
        • PySide6.QtWidgets.QGraphicsLayout
        • PySide6.QtWidgets.QGraphicsLayoutItem
        • PySide6.QtWidgets.QGraphicsLineItem
        • PySide6.QtWidgets.QGraphicsLinearLayout
        • PySide6.QtWidgets.QGraphicsObject
        • PySide6.QtWidgets.QGraphicsOpacityEffect
        • PySide6.QtWidgets.QGraphicsPathItem
        • PySide6.QtWidgets.QGraphicsPixmapItem
        • PySide6.QtWidgets.QGraphicsPolygonItem
        • PySide6.QtWidgets.QGraphicsProxyWidget
        • PySide6.QtWidgets.QGraphicsRectItem
        • PySide6.QtWidgets.QGraphicsRotation
        • PySide6.QtWidgets.QGraphicsScale
        • PySide6.QtWidgets.QGraphicsScene
        • PySide6.QtWidgets.QGraphicsSceneContextMenuEvent
        • PySide6.QtWidgets.QGraphicsSceneDragDropEvent
        • PySide6.QtWidgets.QGraphicsSceneEvent
        • PySide6.QtWidgets.QGraphicsSceneHelpEvent
        • PySide6.QtWidgets.QGraphicsSceneHoverEvent
        • PySide6.QtWidgets.QGraphicsSceneMouseEvent
        • PySide6.QtWidgets.QGraphicsSceneMoveEvent
        • PySide6.QtWidgets.QGraphicsSceneResizeEvent
        • PySide6.QtWidgets.QGraphicsSceneWheelEvent
        • PySide6.QtWidgets.QGraphicsSimpleTextItem
        • PySide6.QtWidgets.QGraphicsTextItem
        • PySide6.QtWidgets.QGraphicsTransform
        • PySide6.QtWidgets.QGraphicsView
        • PySide6.QtWidgets.QGraphicsWidget
        • PySide6.QtWidgets.QGridLayout
        • PySide6.QtWidgets.QGroupBox
        • PySide6.QtWidgets.QHBoxLayout
        • PySide6.QtWidgets.QHeaderView
        • PySide6.QtWidgets.QInputDialog
        • PySide6.QtWidgets.QItemDelegate
        • PySide6.QtWidgets.QItemEditorCreatorBase
        • PySide6.QtWidgets.QItemEditorFactory
        • PySide6.QtWidgets.QKeySequenceEdit
        • PySide6.QtWidgets.QLCDNumber
        • PySide6.QtWidgets.QLabel
        • PySide6.QtWidgets.QLayout
        • PySide6.QtWidgets.QLayoutItem
        • PySide6.QtWidgets.QLineEdit
        • PySide6.QtWidgets.QListView
        • PySide6.QtWidgets.QListWidget
        • PySide6.QtWidgets.QListWidgetItem
        • PySide6.QtWidgets.QMainWindow
        • PySide6.QtWidgets.QMdiArea
        • PySide6.QtWidgets.QMdiSubWindow
        • PySide6.QtWidgets.QMenu
        • PySide6.QtWidgets.QMenuBar
        • PySide6.QtWidgets.QMessageBox
        • PySide6.QtWidgets.QPanGesture
        • PySide6.QtWidgets.QPinchGesture
        • PySide6.QtWidgets.QPlainTextDocumentLayout
        • PySide6.QtWidgets.QPlainTextEdit
        • PySide6.QtWidgets.QProgressBar
        • PySide6.QtWidgets.QProgressDialog
        • PySide6.QtWidgets.QProxyStyle
        • PySide6.QtWidgets.QPushButton
        • PySide6.QtWidgets.QRadioButton
        • PySide6.QtWidgets.QRhiWidget
        • PySide6.QtWidgets.QRubberBand
        • PySide6.QtWidgets.QScrollArea
        • PySide6.QtWidgets.QScrollBar
        • PySide6.QtWidgets.QScroller
        • PySide6.QtWidgets.QScrollerProperties
        • PySide6.QtWidgets.QSizeGrip
        • PySide6.QtWidgets.QSizePolicy
        • PySide6.QtWidgets.QSlider
        • PySide6.QtWidgets.QSpacerItem
        • PySide6.QtWidgets.QSpinBox
        • PySide6.QtWidgets.QSplashScreen
        • PySide6.QtWidgets.QSplitter
        • PySide6.QtWidgets.QSplitterHandle
        • PySide6.QtWidgets.QStackedLayout
        • PySide6.QtWidgets.QStackedWidget
        • PySide6.QtWidgets.QStatusBar
        • PySide6.QtWidgets.QStyle
        • PySide6.QtWidgets.QStyleFactory
        • PySide6.QtWidgets.QStyleHintReturn
        • PySide6.QtWidgets.QStyleHintReturnMask
        • PySide6.QtWidgets.QStyleHintReturnVariant
        • PySide6.QtWidgets.QStyleOption
        • PySide6.QtWidgets.QStyleOptionButton
        • PySide6.QtWidgets.QStyleOptionComboBox
        • PySide6.QtWidgets.QStyleOptionComplex
        • PySide6.QtWidgets.QStyleOptionDockWidget
        • PySide6.QtWidgets.QStyleOptionFocusRect
        • PySide6.QtWidgets.QStyleOptionFrame
        • PySide6.QtWidgets.QStyleOptionGraphicsItem
        • PySide6.QtWidgets.QStyleOptionGroupBox
        • PySide6.QtWidgets.QStyleOptionHeader
        • PySide6.QtWidgets.QStyleOptionHeaderV2
        • PySide6.QtWidgets.QStyleOptionMenuItem
        • PySide6.QtWidgets.QStyleOptionMenuItemV2
        • PySide6.QtWidgets.QStyleOptionProgressBar
        • PySide6.QtWidgets.QStyleOptionRubberBand
        • PySide6.QtWidgets.QStyleOptionSizeGrip
        • PySide6.QtWidgets.QStyleOptionSlider
        • PySide6.QtWidgets.QStyleOptionSpinBox
        • PySide6.QtWidgets.QStyleOptionTab
        • PySide6.QtWidgets.QStyleOptionTabBarBase
        • PySide6.QtWidgets.QStyleOptionTabWidgetFrame
        • PySide6.QtWidgets.QStyleOptionTitleBar
        • PySide6.QtWidgets.QStyleOptionToolBar
        • PySide6.QtWidgets.QStyleOptionToolBox
        • PySide6.QtWidgets.QStyleOptionToolButton
        • PySide6.QtWidgets.QStyleOptionViewItem
        • PySide6.QtWidgets.QStylePainter
        • PySide6.QtWidgets.QStyledItemDelegate
        • PySide6.QtWidgets.QSwipeGesture
        • PySide6.QtWidgets.QSystemTrayIcon
        • PySide6.QtWidgets.QTabBar
        • PySide6.QtWidgets.QTabWidget
        • PySide6.QtWidgets.QTableView
        • PySide6.QtWidgets.QTableWidget
        • PySide6.QtWidgets.QTableWidgetItem
        • PySide6.QtWidgets.QTableWidgetSelectionRange
        • PySide6.QtWidgets.QTapAndHoldGesture
        • PySide6.QtWidgets.QTapGesture
        • PySide6.QtWidgets.QTextBrowser
        • PySide6.QtWidgets.QTextEdit
        • PySide6.QtWidgets.QTileRules
        • PySide6.QtWidgets.QTimeEdit
        • PySide6.QtWidgets.QToolBar
        • PySide6.QtWidgets.QToolBox
        • PySide6.QtWidgets.QToolButton
        • PySide6.QtWidgets.QToolTip
        • PySide6.QtWidgets.QTreeView
        • PySide6.QtWidgets.QTreeWidget
        • PySide6.QtWidgets.QTreeWidgetItem
        • PySide6.QtWidgets.QTreeWidgetItemIterator
        • PySide6.QtWidgets.QUndoView
        • PySide6.QtWidgets.QVBoxLayout
        • PySide6.QtWidgets.QWhatsThis
        • PySide6.QtWidgets.QWidget
        • PySide6.QtWidgets.QWidgetAction
        • PySide6.QtWidgets.QWidgetItem
        • PySide6.QtWidgets.QWizard
        • PySide6.QtWidgets.QWizardPage
      • PySide6.QtXml
        • PySide6.QtXml.QDomAttr
        • PySide6.QtXml.QDomCDATASection
        • PySide6.QtXml.QDomCharacterData
        • PySide6.QtXml.QDomComment
        • PySide6.QtXml.QDomDocument
        • PySide6.QtXml.QDomDocumentFragment
        • PySide6.QtXml.QDomDocumentType
        • PySide6.QtXml.QDomElement
        • PySide6.QtXml.QDomEntity
        • PySide6.QtXml.QDomEntityReference
        • PySide6.QtXml.QDomImplementation
        • PySide6.QtXml.QDomNamedNodeMap
        • PySide6.QtXml.QDomNode
        • PySide6.QtXml.QDomNodeList
        • PySide6.QtXml.QDomNotation
        • PySide6.QtXml.QDomProcessingInstruction
        • PySide6.QtXml.QDomText
  • Tools
    • pyside6-assistant
    • pyside6-designer
    • pyside6-genpyi
    • pyside6-linguist
    • pyside6-lrelease
    • pyside6-lupdate
    • pyside6-metaobjectdump
    • pyside6-project
    • pyside6-qml
    • pyside6-qmlcachegen
    • pyside6-qmllint
    • pyside6-qmltyperegistrar
    • pyside6-rcc
    • pyside6-uic
    • pyside6-balsam
    • pyside6-balsamui
    • pyside6-qmlimportscanner
    • pyside6-qsb
    • Qt Python VSCode Extension
  • Tutorials
    • Your First QtWidgets Application
    • Using a Simple Button
    • Signals and Slots
    • Creating a Dialog Application
    • Displaying Data Using a Table Widget
    • Displaying Data Using a Tree Widget
    • Using .ui files from Designer or QtCreator with QUiLoader and pyside6-uic
    • Using .qrc Files (pyside6-rcc)
    • Translating Applications
    • Styling the Widgets Application
    • Your First QtQuick/QML Application
    • Python-QML integration
    • QML Application Tutorial
    • QML, SQL and PySide Integration Tutorial
    • Extending the file system explorer example
    • Finance Manager Tutorial
      • Finance Manager Tutorial - Part 1
      • Finance Manager Tutorial - Part 2
      • Finance Manager Tutorial - Part 3
    • Data Visualization Tool Tutorial
      • Chapter 1 - Reading data from a CSV
      • Chapter 2 - Filtering data
      • Chapter 3 - Create an empty QMainWindow
      • Chapter 4 - Add a QTableView
      • Chapter 5 - Add a chart view
      • Chapter 6 - Plot the data in the GraphsView
    • Expenses Tool Tutorial
    • Deploying a PySide6 Application to Boot to Qt on Raspberry Pi
    • Qt Design Studio integration tutorial
    • Qt Overviews
    • Porting a C++ Application to Python
      • Chapter 1: initDb.h to createDb.py
      • Chapter 2: bookdelegate.cpp to bookdelegate.py
      • Chapter 3: Port bookdwindow.cpp to bookwindow.py
    • How To Debug a C++ Extension of a PySide6 Application?
      • Debugging PySide with Qt Creator (Linux)
      • Debugging PySide with VSCode (Linux + Windows)
    • Mixed mode Debugging of PySide6 QML Applications
  • Examples
    • Extending QML - Adding Types Example
    • Extending QML (advanced) - BirthdayParty Base Project
    • Extending QML (advanced) - Inheritance and Coercion
    • Extending QML (advanced) - Default Properties
    • Extending QML (advanced) - Grouped Properties
    • Extending QML (advanced) - Attached Properties
    • Extending QML (advanced) - Property Value Source
    • Extending QML - Binding Example
    • Extending QML - Creating a New Type
    • Extending QML - Connecting to C++ Methods and Signals
    • Extending QML - Adding Property Bindings
    • Extending QML - Using Custom Property Types
    • Extending QML - Using List Property Types
    • Extending QML - Plugins Example
    • QAbstractListModel in QML
    • Extending QML - Extension Objects Example
    • Extending QML - Methods Example
    • Extending QML - Object and List Property Types Example
    • Calling Python Methods from QML
    • Receiving return values from Python in QML
    • Handling QML Signals in Python
    • Directly Connecting QML Component Signals to Python Functions
    • Text Properties Example
    • Using Model Example
    • Object List Model Example
    • OpenGL under QML Squircle
    • Scene Graph Painted Item Example
    • QQuickRenderControl OpenGL Example
    • Scene Graph - Custom Geometry
    • String List Model Example
    • Qt Quick Examples - Window and Screen
    • Qt Quick Controls 2 - Gallery
    • Qt Quick Controls - Contact List
    • Qt Quick Controls - Filesystem Explorer
    • Widgets Gallery Example
    • Address Book Example
    • Anchor Layout Example
    • Animated Tiles Example
    • Application Chooser Example
    • Application Example
    • Basic Drawing Example
    • Basic Sort/Filter Model Example
    • Basic Layouts Example
    • Blur Picker Effect Example
    • Border Layout Example
    • Cannon Example
    • Character Map Example
    • Classwizard Example
    • Colliding Mice Example
    • Concentric Circles Examples
    • Diagram Scene Example
    • Digital Clock Example
    • Dir View Example
    • Dock Widget Example
    • Drag and Drop Robot Example
    • Draggable Text Example
    • Drop Site Example
    • Dynamic Layouts Example
    • Easing Example
    • Editable Tree Model Example
    • Elastic Nodes Example
    • Extension Example
    • Fetch More Example
    • Flow Layout Example
    • GNU gettext Example
    • Image Viewer Example
    • JSON Model Example
    • License Wizard Example
    • Lighting Example
    • Qt Linguist Example
    • MDI Example
    • Model View Tutorial Examples
    • Order Form Example
    • Painter Example
    • Plot Example
    • QRangeModel Example
    • QRegularExpression Example
    • Screenshot Example
    • Simple RHI Widget Example
    • SpinBox Delegate Example
    • Standard Dialogs Example
    • Star Delegate Example
    • States Example
    • Syntax Highlighter Example
    • System Tray Icon Example
    • Tab Dialog Example
    • Tetrix
    • TextEdit Example
    • TextObject Example
    • Thread Signals Examples
    • Trivial Wizard Example
    • Task Menu Extension Example
    • UILoader Example
    • MIME Type Browser Example
    • Settings Editor Example
    • IPC: Shared Memory
    • Mandelbrot Threads Example
    • Async “Eratosthenes” Example
    • Async “Minimal” Example
    • Blocking Fortune Client Example
    • Downloader Example
    • Fortune Client Example
    • Fortune Server Example
    • Google Suggest Example
    • Loopback Example
    • Threaded Fortune Server Example
    • SQL Books Example
    • D-Bus List Names Example
    • D-Bus Ping Pong Example
    • DOM Bookmarks Example
    • Analog Clock Window Example
    • RHI Window Example
    • Context Info Example
    • Hello GL2 Example
    • Texture Example
    • Threaded QOpenGLWidget Example
    • Sample Bindings Example
    • Using CMake
    • Scriptable Application Example
    • WigglyWidget Example
    • Media Player Example
    • RESTful API client
    • Document Viewer Example
    • OSM Buildings
    • Simple HTTP Server Example
    • Widget Graph Gallery
    • Simple Bar Graph
    • Graph Printing Example
    • GraphsAudio Example
    • HelloGraphs Example
    • Minimal Surface Example
    • Graph Gallery
    • Surface Graph Gallery
    • Bars 3D Example
    • Surface Example
    • Surface Example
    • Surface Example
    • Area Chart Example
    • Audio Example
    • Bar Chart Example
    • Callout Example
    • Chart Themes Example
    • Donut Chart Breakdown Example
    • Dynamic Spline Example
    • Legend Example
    • Line and Bar Chart Example
    • Line Chart Example
    • Logarithmic Axis Example
    • Memory Usag Example
    • Model Data Example
    • Nested Donuts Example
    • Percent Bar Chart Example
    • Pie Chart Example
    • Selected Point Configuration Example
    • Light Markers and Points Selection Example
    • QML Polar Chart Example
    • Temperature Records Example
    • Zoom Line Chart Example
    • Audio Output Example
    • Audio Source Example
    • Camera Example
    • Player Example
    • Screen Capture Example
    • Nano Browser Example
    • WebEngine Markdown Editor Example
    • WebEngine Notifications Example
    • Simple Browser
    • Qt Widgets Nano Browser Example
    • Ax Viewer Example
    • Bluetooth Scanner Example
    • Bluetooth Low Energy Heart Rate Game
    • Bluetooth Low Energy Heart Rate Server
    • Bluetooth Low Energy Scanner Example
    • Networkx viewer Example
    • OpenCV Face Detection Example
    • Pandas Simple Example
    • Scikit Image Example
    • Matplotlib Widget 3D Example
    • Matplotlib Widget Gaussian Example
    • Map Viewer Example
    • Reddit Example
    • PDF Viewer Example
    • PDF Viewer Example
    • Custom Geometry Example
    • Introduction Example Qt Quick 3D
    • Procedural Texture Example
    • Model-View Server Example
    • Spatial Audio Panning Example
    • Hello Speak
    • Simple Qt 3D Example
    • CAN Bus example
    • Modbus Client example
    • Terminal Example
    • Move Blocks Example
    • StateMachine Ping Pong Example
    • StateMachine Rogue Example
    • Traffic Light Example
    • WebChannel Standalone Example
    • Simple CoAP Client Example
    • Simple MQTT Client Example
    • Qt OPC UA Viewer Example
    • Qt Canvas Painter - Hello Widget Example
    • Drumpad example (Qt Design Studio) - Final project
    • Drumpad example (Qt Design Studio) - Initial project
    • Finance Manager Example - Part 1
    • Finance Manager Example - Part 2
    • Finance Manager Example - Part 3
    • Minibrowser Example
    • WebView Browser Example
  • Videos
  • Deployment
    • pyside6-deploy: the deployment tool for Qt for Python
    • pyside6-android-deploy: the Android deployment tool for Qt for Python
    • Qt for Python & fbs
    • Qt for Python & PyInstaller
    • Qt for Python & cx_Freeze
    • Qt for Python & Briefcase
    • Qt for Python & py2exe
    • Qt for Python & Nuitka
  • Considerations
  • Developer Notes
    • Add a new module
    • Add a new example or port one
    • Add a new tool or a Qt tool wrapper
    • Adapting to changes in supported Python versions
    • Fixing Documentation issues
    • Adapt to new Qt versions
    • Test a wheel
    • Build on the command line
    • Build with address sanitizer (Linux)
    • Build with thread sanitizer
    • De-Virtualize the Python Files
    • QtAsyncio developer notes
    • Signalmanager
    • Description
    • The Set of Enum Features
    • The Transition To The Limited Python API (PEP384)
    • The signature C extension
    • Improving the Quality of Signatures with mypy
    • Why do we have a __feature__?
    • The snake_case feature
    • The true_property feature
    • The __feature__ import
    • Qt Remote Objects Overview
    • Fixing Type Hints
  • Release Notes
    • PySide6
    • Shiboken6
    • PySide2
    • Shiboken2
  • Module Index
Back to top

Surface Graph Gallery¶

Surface Graph Gallery demonstrates three different custom features with Surface3D graphs. The features have their own tabs in the application.

Surface Graph Gallery Screenshot

Download this example

# Copyright (C) 2023 The Qt Company Ltd.
# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
from __future__ import annotations

from math import sin, pi

from PySide6.QtCore import QObject, QRandomGenerator, Slot
from PySide6.QtQml import QmlElement
from PySide6.QtGui import QVector3D
from PySide6.QtDataVisualization import QSurfaceDataItem, QSurface3DSeries


QML_IMPORT_NAME = "SurfaceGallery"
QML_IMPORT_MAJOR_VERSION = 1


@QmlElement
class DataSource(QObject):

    def __init__(self, parent=None):
        super().__init__(parent)
        self.m_index = -1
        self.m_resetArray = None
        self.m_data = []

    @Slot(int, int, int, float, float, float, float, float, float)
    def generateData(self, cacheCount, rowCount, columnCount,
                     xMin, xMax, yMin, yMax, zMin, zMax):
        if not cacheCount or not rowCount or not columnCount:
            return

        self.clearData()

        xRange = xMax - xMin
        yRange = yMax - yMin
        zRange = zMax - zMin
        cacheIndexStep = columnCount / cacheCount
        cacheStep = float(cacheIndexStep) * xRange / float(columnCount)

        # Populate caches
        self.m_data = []
        rand_gen = QRandomGenerator.global_()
        for i in range(0, cacheCount):
            cache = []
            cacheXAdjustment = cacheStep * i
            cacheIndexAdjustment = cacheIndexStep * i
            for j in range(0, rowCount):
                row = []
                rowMod = (float(j)) / float(rowCount)
                yRangeMod = yRange * rowMod
                zRangeMod = zRange * rowMod
                z = zRangeMod + zMin
                rowColWaveAngleMul = pi * pi * rowMod
                rowColWaveMul = yRangeMod * 0.2
                for k in range(0, columnCount):
                    colMod = (float(k)) / float(columnCount)
                    xRangeMod = xRange * colMod
                    x = xRangeMod + xMin + cacheXAdjustment
                    colWave = sin((2.0 * pi * colMod) - (1.0 / 2.0 * pi)) + 1.0
                    rand_nr = rand_gen.generateDouble() * 0.15
                    y = ((colWave * ((sin(rowColWaveAngleMul * colMod) + 1.0)))
                         * rowColWaveMul + rand_nr * yRangeMod)

                    index = k + cacheIndexAdjustment
                    if index >= columnCount:
                        # Wrap over
                        index -= columnCount
                        x -= xRange

                    row.append(QSurfaceDataItem(QVector3D(x, y, z)))
                cache.append(row)
            self.m_data.append(cache)

    @Slot(QSurface3DSeries)
    def update(self, series):
        if series and self.m_data:
            # Each iteration uses data from a different cached array
            self.m_index += 1
            if self.m_index > len(self.m_data) - 1:
                self.m_index = 0

            array = self.m_data[self.m_index]
            newRowCount = len(array)
            newColumnCount = len(array[0])

            # Copy items from our cache to the reset array
            self.m_resetArray = []
            for i in range(0, newRowCount):
                sourceRow = array[i]
                row = []
                for j in range(0, newColumnCount):
                    row.append(QSurfaceDataItem(sourceRow[j].position()))
                self.m_resetArray.append(row)

            # Notify the proxy that data has changed
            series.dataProxy().resetArray(self.m_resetArray)

    @Slot()
    def clearData(self):
        self.m_data = []
# Copyright (C) 2023 The Qt Company Ltd.
# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
from __future__ import annotations

"""PySide6 port of the Qt DataVisualization qmlsurfacegallery example from Qt v6.x"""

import os
import sys
from pathlib import Path

from PySide6.QtCore import QCoreApplication, QUrl
from PySide6.QtGui import QGuiApplication
from PySide6.QtQuick import QQuickView
from PySide6.QtDataVisualization import qDefaultSurfaceFormat

from datasource import DataSource  # noqa: F401
import rc_qmlsurfacegallery  # noqa: F401


if __name__ == "__main__":
    os.environ["QSG_RHI_BACKEND"] = "opengl"
    app = QGuiApplication(sys.argv)

    viewer = QQuickView()

    # Enable antialiasing in direct rendering mode
    viewer.setFormat(qDefaultSurfaceFormat(True))

    viewer.engine().quit.connect(QCoreApplication.quit)

    viewer.setTitle("Surface Graph Gallery")

    qml_file = Path(__file__).resolve().parent / "qml" / "qmlsurfacegallery" / "main.qml"
    viewer.setSource(QUrl.fromLocalFile(qml_file))
    viewer.setResizeMode(QQuickView.ResizeMode.SizeRootObjectToView)
    viewer.show()

    ex = app.exec()
    del viewer
    sys.exit(ex)
<RCC>
    <qresource prefix="/">
        <file>qml/qmlsurfacegallery/heightmap.png</file>
    </qresource>
</RCC>
// Copyright (C) 2023 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause

import QtQuick

Item {
    property alias model: dataModel

    ListModel {
        id: dataModel
        ListElement{ radius: "0"; angle: "0"; value: "50"; }
        ListElement{ radius: "0"; angle: "5"; value: "54.3578"; }
        ListElement{ radius: "0"; angle: "10"; value: "58.6824"; }
        ListElement{ radius: "0"; angle: "15"; value: "62.941"; }
        ListElement{ radius: "0"; angle: "20"; value: "67.101"; }
        ListElement{ radius: "0"; angle: "25"; value: "71.1309"; }
        ListElement{ radius: "0"; angle: "30"; value: "75"; }
        ListElement{ radius: "0"; angle: "35"; value: "78.6788"; }
        ListElement{ radius: "0"; angle: "40"; value: "82.1394"; }
        ListElement{ radius: "0"; angle: "45"; value: "85.3553"; }
        ListElement{ radius: "0"; angle: "50"; value: "88.3022"; }
        ListElement{ radius: "0"; angle: "55"; value: "90.9576"; }
        ListElement{ radius: "0"; angle: "60"; value: "93.3013"; }
        ListElement{ radius: "0"; angle: "65"; value: "95.3154"; }
        ListElement{ radius: "0"; angle: "70"; value: "96.9846"; }
        ListElement{ radius: "0"; angle: "75"; value: "98.2963"; }
        ListElement{ radius: "0"; angle: "80"; value: "99.2404"; }
        ListElement{ radius: "0"; angle: "85"; value: "99.8097"; }
        ListElement{ radius: "0"; angle: "90"; value: "100"; }
        ListElement{ radius: "0"; angle: "95"; value: "99.8097"; }
        ListElement{ radius: "0"; angle: "100"; value: "99.2404"; }
        ListElement{ radius: "0"; angle: "105"; value: "98.2963"; }
        ListElement{ radius: "0"; angle: "110"; value: "96.9846"; }
        ListElement{ radius: "0"; angle: "115"; value: "95.3154"; }
        ListElement{ radius: "0"; angle: "120"; value: "93.3013"; }
        ListElement{ radius: "0"; angle: "125"; value: "90.9576"; }
        ListElement{ radius: "0"; angle: "130"; value: "88.3022"; }
        ListElement{ radius: "0"; angle: "135"; value: "85.3553"; }
        ListElement{ radius: "0"; angle: "140"; value: "82.1394"; }
        ListElement{ radius: "0"; angle: "145"; value: "78.6788"; }
        ListElement{ radius: "0"; angle: "150"; value: "75"; }
        ListElement{ radius: "0"; angle: "155"; value: "71.1309"; }
        ListElement{ radius: "0"; angle: "160"; value: "67.101"; }
        ListElement{ radius: "0"; angle: "165"; value: "62.941"; }
        ListElement{ radius: "0"; angle: "170"; value: "58.6824"; }
        ListElement{ radius: "0"; angle: "175"; value: "54.3578"; }
        ListElement{ radius: "0"; angle: "180"; value: "50"; }
        ListElement{ radius: "0"; angle: "185"; value: "45.6422"; }
        ListElement{ radius: "0"; angle: "190"; value: "41.3176"; }
        ListElement{ radius: "0"; angle: "195"; value: "37.059"; }
        ListElement{ radius: "0"; angle: "200"; value: "32.899"; }
        ListElement{ radius: "0"; angle: "205"; value: "28.8691"; }
        ListElement{ radius: "0"; angle: "210"; value: "25"; }
        ListElement{ radius: "0"; angle: "215"; value: "21.3212"; }
        ListElement{ radius: "0"; angle: "220"; value: "17.8606"; }
        ListElement{ radius: "0"; angle: "225"; value: "14.6447"; }
        ListElement{ radius: "0"; angle: "230"; value: "11.6978"; }
        ListElement{ radius: "0"; angle: "235"; value: "9.0424"; }
        ListElement{ radius: "0"; angle: "240"; value: "6.69873"; }
        ListElement{ radius: "0"; angle: "245"; value: "4.68461"; }
        ListElement{ radius: "0"; angle: "250"; value: "3.01537"; }
        ListElement{ radius: "0"; angle: "255"; value: "1.70371"; }
        ListElement{ radius: "0"; angle: "260"; value: "0.759612"; }
        ListElement{ radius: "0"; angle: "265"; value: "0.190265"; }
        ListElement{ radius: "0"; angle: "270"; value: "0"; }
        ListElement{ radius: "0"; angle: "275"; value: "0.190265"; }
        ListElement{ radius: "0"; angle: "280"; value: "0.759612"; }
        ListElement{ radius: "0"; angle: "285"; value: "1.70371"; }
        ListElement{ radius: "0"; angle: "290"; value: "3.01537"; }
        ListElement{ radius: "0"; angle: "295"; value: "4.68461"; }
        ListElement{ radius: "0"; angle: "300"; value: "6.69873"; }
        ListElement{ radius: "0"; angle: "305"; value: "9.0424"; }
        ListElement{ radius: "0"; angle: "310"; value: "11.6978"; }
        ListElement{ radius: "0"; angle: "315"; value: "14.6447"; }
        ListElement{ radius: "0"; angle: "320"; value: "17.8606"; }
        ListElement{ radius: "0"; angle: "325"; value: "21.3212"; }
        ListElement{ radius: "0"; angle: "330"; value: "25"; }
        ListElement{ radius: "0"; angle: "335"; value: "28.8691"; }
        ListElement{ radius: "0"; angle: "340"; value: "32.899"; }
        ListElement{ radius: "0"; angle: "345"; value: "37.059"; }
        ListElement{ radius: "0"; angle: "350"; value: "41.3176"; }
        ListElement{ radius: "0"; angle: "355"; value: "45.6422"; }
        ListElement{ radius: "0"; angle: "360"; value: "50"; }
        ListElement{ radius: "5"; angle: "0"; value: "49.3844"; }
        ListElement{ radius: "5"; angle: "5"; value: "53.7422"; }
        ListElement{ radius: "5"; angle: "10"; value: "58.0668"; }
        ListElement{ radius: "5"; angle: "15"; value: "62.3254"; }
        ListElement{ radius: "5"; angle: "20"; value: "66.4854"; }
        ListElement{ radius: "5"; angle: "25"; value: "70.5153"; }
        ListElement{ radius: "5"; angle: "30"; value: "74.3844"; }
        ListElement{ radius: "5"; angle: "35"; value: "78.0632"; }
        ListElement{ radius: "5"; angle: "40"; value: "81.5238"; }
        ListElement{ radius: "5"; angle: "45"; value: "84.7398"; }
        ListElement{ radius: "5"; angle: "50"; value: "87.6866"; }
        ListElement{ radius: "5"; angle: "55"; value: "90.342"; }
        ListElement{ radius: "5"; angle: "60"; value: "92.6857"; }
        ListElement{ radius: "5"; angle: "65"; value: "94.6998"; }
        ListElement{ radius: "5"; angle: "70"; value: "96.369"; }
        ListElement{ radius: "5"; angle: "75"; value: "97.6807"; }
        ListElement{ radius: "5"; angle: "80"; value: "98.6248"; }
        ListElement{ radius: "5"; angle: "85"; value: "99.1942"; }
        ListElement{ radius: "5"; angle: "90"; value: "99.3844"; }
        ListElement{ radius: "5"; angle: "95"; value: "99.1942"; }
        ListElement{ radius: "5"; angle: "100"; value: "98.6248"; }
        ListElement{ radius: "5"; angle: "105"; value: "97.6807"; }
        ListElement{ radius: "5"; angle: "110"; value: "96.369"; }
        ListElement{ radius: "5"; angle: "115"; value: "94.6998"; }
        ListElement{ radius: "5"; angle: "120"; value: "92.6857"; }
        ListElement{ radius: "5"; angle: "125"; value: "90.342"; }
        ListElement{ radius: "5"; angle: "130"; value: "87.6866"; }
        ListElement{ radius: "5"; angle: "135"; value: "84.7398"; }
        ListElement{ radius: "5"; angle: "140"; value: "81.5238"; }
        ListElement{ radius: "5"; angle: "145"; value: "78.0632"; }
        ListElement{ radius: "5"; angle: "150"; value: "74.3844"; }
        ListElement{ radius: "5"; angle: "155"; value: "70.5153"; }
        ListElement{ radius: "5"; angle: "160"; value: "66.4854"; }
        ListElement{ radius: "5"; angle: "165"; value: "62.3254"; }
        ListElement{ radius: "5"; angle: "170"; value: "58.0668"; }
        ListElement{ radius: "5"; angle: "175"; value: "53.7422"; }
        ListElement{ radius: "5"; angle: "180"; value: "49.3844"; }
        ListElement{ radius: "5"; angle: "185"; value: "45.0266"; }
        ListElement{ radius: "5"; angle: "190"; value: "40.702"; }
        ListElement{ radius: "5"; angle: "195"; value: "36.4435"; }
        ListElement{ radius: "5"; angle: "200"; value: "32.2834"; }
        ListElement{ radius: "5"; angle: "205"; value: "28.2535"; }
        ListElement{ radius: "5"; angle: "210"; value: "24.3844"; }
        ListElement{ radius: "5"; angle: "215"; value: "20.7056"; }
        ListElement{ radius: "5"; angle: "220"; value: "17.245"; }
        ListElement{ radius: "5"; angle: "225"; value: "14.0291"; }
        ListElement{ radius: "5"; angle: "230"; value: "11.0822"; }
        ListElement{ radius: "5"; angle: "235"; value: "8.42681"; }
        ListElement{ radius: "5"; angle: "240"; value: "6.08315"; }
        ListElement{ radius: "5"; angle: "245"; value: "4.06903"; }
        ListElement{ radius: "5"; angle: "250"; value: "2.39979"; }
        ListElement{ radius: "5"; angle: "255"; value: "1.08813"; }
        ListElement{ radius: "5"; angle: "260"; value: "0.144029"; }
        ListElement{ radius: "5"; angle: "265"; value: "-0.425318"; }
        ListElement{ radius: "5"; angle: "270"; value: "-0.615583"; }
        ListElement{ radius: "5"; angle: "275"; value: "-0.425318"; }
        ListElement{ radius: "5"; angle: "280"; value: "0.144029"; }
        ListElement{ radius: "5"; angle: "285"; value: "1.08813"; }
        ListElement{ radius: "5"; angle: "290"; value: "2.39979"; }
        ListElement{ radius: "5"; angle: "295"; value: "4.06903"; }
        ListElement{ radius: "5"; angle: "300"; value: "6.08315"; }
        ListElement{ radius: "5"; angle: "305"; value: "8.42681"; }
        ListElement{ radius: "5"; angle: "310"; value: "11.0822"; }
        ListElement{ radius: "5"; angle: "315"; value: "14.0291"; }
        ListElement{ radius: "5"; angle: "320"; value: "17.245"; }
        ListElement{ radius: "5"; angle: "325"; value: "20.7056"; }
        ListElement{ radius: "5"; angle: "330"; value: "24.3844"; }
        ListElement{ radius: "5"; angle: "335"; value: "28.2535"; }
        ListElement{ radius: "5"; angle: "340"; value: "32.2834"; }
        ListElement{ radius: "5"; angle: "345"; value: "36.4435"; }
        ListElement{ radius: "5"; angle: "350"; value: "40.702"; }
        ListElement{ radius: "5"; angle: "355"; value: "45.0266"; }
        ListElement{ radius: "5"; angle: "360"; value: "49.3844"; }
        ListElement{ radius: "10"; angle: "0"; value: "47.5528"; }
        ListElement{ radius: "10"; angle: "5"; value: "51.9106"; }
        ListElement{ radius: "10"; angle: "10"; value: "56.2352"; }
        ListElement{ radius: "10"; angle: "15"; value: "60.4938"; }
        ListElement{ radius: "10"; angle: "20"; value: "64.6538"; }
        ListElement{ radius: "10"; angle: "25"; value: "68.6837"; }
        ListElement{ radius: "10"; angle: "30"; value: "72.5528"; }
        ListElement{ radius: "10"; angle: "35"; value: "76.2316"; }
        ListElement{ radius: "10"; angle: "40"; value: "79.6922"; }
        ListElement{ radius: "10"; angle: "45"; value: "82.9082"; }
        ListElement{ radius: "10"; angle: "50"; value: "85.855"; }
        ListElement{ radius: "10"; angle: "55"; value: "88.5104"; }
        ListElement{ radius: "10"; angle: "60"; value: "90.8541"; }
        ListElement{ radius: "10"; angle: "65"; value: "92.8682"; }
        ListElement{ radius: "10"; angle: "70"; value: "94.5375"; }
        ListElement{ radius: "10"; angle: "75"; value: "95.8491"; }
        ListElement{ radius: "10"; angle: "80"; value: "96.7932"; }
        ListElement{ radius: "10"; angle: "85"; value: "97.3626"; }
        ListElement{ radius: "10"; angle: "90"; value: "97.5528"; }
        ListElement{ radius: "10"; angle: "95"; value: "97.3626"; }
        ListElement{ radius: "10"; angle: "100"; value: "96.7932"; }
        ListElement{ radius: "10"; angle: "105"; value: "95.8491"; }
        ListElement{ radius: "10"; angle: "110"; value: "94.5375"; }
        ListElement{ radius: "10"; angle: "115"; value: "92.8682"; }
        ListElement{ radius: "10"; angle: "120"; value: "90.8541"; }
        ListElement{ radius: "10"; angle: "125"; value: "88.5104"; }
        ListElement{ radius: "10"; angle: "130"; value: "85.855"; }
        ListElement{ radius: "10"; angle: "135"; value: "82.9082"; }
        ListElement{ radius: "10"; angle: "140"; value: "79.6922"; }
        ListElement{ radius: "10"; angle: "145"; value: "76.2316"; }
        ListElement{ radius: "10"; angle: "150"; value: "72.5528"; }
        ListElement{ radius: "10"; angle: "155"; value: "68.6837"; }
        ListElement{ radius: "10"; angle: "160"; value: "64.6538"; }
        ListElement{ radius: "10"; angle: "165"; value: "60.4938"; }
        ListElement{ radius: "10"; angle: "170"; value: "56.2352"; }
        ListElement{ radius: "10"; angle: "175"; value: "51.9106"; }
        ListElement{ radius: "10"; angle: "180"; value: "47.5528"; }
        ListElement{ radius: "10"; angle: "185"; value: "43.195"; }
        ListElement{ radius: "10"; angle: "190"; value: "38.8704"; }
        ListElement{ radius: "10"; angle: "195"; value: "34.6119"; }
        ListElement{ radius: "10"; angle: "200"; value: "30.4518"; }
        ListElement{ radius: "10"; angle: "205"; value: "26.4219"; }
        ListElement{ radius: "10"; angle: "210"; value: "22.5528"; }
        ListElement{ radius: "10"; angle: "215"; value: "18.874"; }
        ListElement{ radius: "10"; angle: "220"; value: "15.4134"; }
        ListElement{ radius: "10"; angle: "225"; value: "12.1975"; }
        ListElement{ radius: "10"; angle: "230"; value: "9.2506"; }
        ListElement{ radius: "10"; angle: "235"; value: "6.59522"; }
        ListElement{ radius: "10"; angle: "240"; value: "4.25156"; }
        ListElement{ radius: "10"; angle: "245"; value: "2.23744"; }
        ListElement{ radius: "10"; angle: "250"; value: "0.568195"; }
        ListElement{ radius: "10"; angle: "255"; value: "-0.743465"; }
        ListElement{ radius: "10"; angle: "260"; value: "-1.68756"; }
        ListElement{ radius: "10"; angle: "265"; value: "-2.25691"; }
        ListElement{ radius: "10"; angle: "270"; value: "-2.44717"; }
        ListElement{ radius: "10"; angle: "275"; value: "-2.25691"; }
        ListElement{ radius: "10"; angle: "280"; value: "-1.68756"; }
        ListElement{ radius: "10"; angle: "285"; value: "-0.743465"; }
        ListElement{ radius: "10"; angle: "290"; value: "0.568195"; }
        ListElement{ radius: "10"; angle: "295"; value: "2.23744"; }
        ListElement{ radius: "10"; angle: "300"; value: "4.25156"; }
        ListElement{ radius: "10"; angle: "305"; value: "6.59522"; }
        ListElement{ radius: "10"; angle: "310"; value: "9.2506"; }
        ListElement{ radius: "10"; angle: "315"; value: "12.1975"; }
        ListElement{ radius: "10"; angle: "320"; value: "15.4134"; }
        ListElement{ radius: "10"; angle: "325"; value: "18.874"; }
        ListElement{ radius: "10"; angle: "330"; value: "22.5528"; }
        ListElement{ radius: "10"; angle: "335"; value: "26.4219"; }
        ListElement{ radius: "10"; angle: "340"; value: "30.4518"; }
        ListElement{ radius: "10"; angle: "345"; value: "34.6119"; }
        ListElement{ radius: "10"; angle: "350"; value: "38.8704"; }
        ListElement{ radius: "10"; angle: "355"; value: "43.195"; }
        ListElement{ radius: "10"; angle: "360"; value: "47.5528"; }
        ListElement{ radius: "15"; angle: "0"; value: "44.5503"; }
        ListElement{ radius: "15"; angle: "5"; value: "48.9081"; }
        ListElement{ radius: "15"; angle: "10"; value: "53.2327"; }
        ListElement{ radius: "15"; angle: "15"; value: "57.4913"; }
        ListElement{ radius: "15"; angle: "20"; value: "61.6513"; }
        ListElement{ radius: "15"; angle: "25"; value: "65.6812"; }
        ListElement{ radius: "15"; angle: "30"; value: "69.5503"; }
        ListElement{ radius: "15"; angle: "35"; value: "73.2291"; }
        ListElement{ radius: "15"; angle: "40"; value: "76.6897"; }
        ListElement{ radius: "15"; angle: "45"; value: "79.9057"; }
        ListElement{ radius: "15"; angle: "50"; value: "82.8525"; }
        ListElement{ radius: "15"; angle: "55"; value: "85.5079"; }
        ListElement{ radius: "15"; angle: "60"; value: "87.8516"; }
        ListElement{ radius: "15"; angle: "65"; value: "89.8657"; }
        ListElement{ radius: "15"; angle: "70"; value: "91.535"; }
        ListElement{ radius: "15"; angle: "75"; value: "92.8466"; }
        ListElement{ radius: "15"; angle: "80"; value: "93.7907"; }
        ListElement{ radius: "15"; angle: "85"; value: "94.3601"; }
        ListElement{ radius: "15"; angle: "90"; value: "94.5503"; }
        ListElement{ radius: "15"; angle: "95"; value: "94.3601"; }
        ListElement{ radius: "15"; angle: "100"; value: "93.7907"; }
        ListElement{ radius: "15"; angle: "105"; value: "92.8466"; }
        ListElement{ radius: "15"; angle: "110"; value: "91.535"; }
        ListElement{ radius: "15"; angle: "115"; value: "89.8657"; }
        ListElement{ radius: "15"; angle: "120"; value: "87.8516"; }
        ListElement{ radius: "15"; angle: "125"; value: "85.5079"; }
        ListElement{ radius: "15"; angle: "130"; value: "82.8525"; }
        ListElement{ radius: "15"; angle: "135"; value: "79.9057"; }
        ListElement{ radius: "15"; angle: "140"; value: "76.6897"; }
        ListElement{ radius: "15"; angle: "145"; value: "73.2291"; }
        ListElement{ radius: "15"; angle: "150"; value: "69.5503"; }
        ListElement{ radius: "15"; angle: "155"; value: "65.6812"; }
        ListElement{ radius: "15"; angle: "160"; value: "61.6513"; }
        ListElement{ radius: "15"; angle: "165"; value: "57.4913"; }
        ListElement{ radius: "15"; angle: "170"; value: "53.2327"; }
        ListElement{ radius: "15"; angle: "175"; value: "48.9081"; }
        ListElement{ radius: "15"; angle: "180"; value: "44.5503"; }
        ListElement{ radius: "15"; angle: "185"; value: "40.1925"; }
        ListElement{ radius: "15"; angle: "190"; value: "35.8679"; }
        ListElement{ radius: "15"; angle: "195"; value: "31.6094"; }
        ListElement{ radius: "15"; angle: "200"; value: "27.4493"; }
        ListElement{ radius: "15"; angle: "205"; value: "23.4194"; }
        ListElement{ radius: "15"; angle: "210"; value: "19.5503"; }
        ListElement{ radius: "15"; angle: "215"; value: "15.8715"; }
        ListElement{ radius: "15"; angle: "220"; value: "12.4109"; }
        ListElement{ radius: "15"; angle: "225"; value: "9.19499"; }
        ListElement{ radius: "15"; angle: "230"; value: "6.2481"; }
        ListElement{ radius: "15"; angle: "235"; value: "3.59272"; }
        ListElement{ radius: "15"; angle: "240"; value: "1.24906"; }
        ListElement{ radius: "15"; angle: "245"; value: "-0.765063"; }
        ListElement{ radius: "15"; angle: "250"; value: "-2.4343"; }
        ListElement{ radius: "15"; angle: "255"; value: "-3.74597"; }
        ListElement{ radius: "15"; angle: "260"; value: "-4.69006"; }
        ListElement{ radius: "15"; angle: "265"; value: "-5.25941"; }
        ListElement{ radius: "15"; angle: "270"; value: "-5.44967"; }
        ListElement{ radius: "15"; angle: "275"; value: "-5.25941"; }
        ListElement{ radius: "15"; angle: "280"; value: "-4.69006"; }
        ListElement{ radius: "15"; angle: "285"; value: "-3.74597"; }
        ListElement{ radius: "15"; angle: "290"; value: "-2.4343"; }
        ListElement{ radius: "15"; angle: "295"; value: "-0.765063"; }
        ListElement{ radius: "15"; angle: "300"; value: "1.24906"; }
        ListElement{ radius: "15"; angle: "305"; value: "3.59272"; }
        ListElement{ radius: "15"; angle: "310"; value: "6.2481"; }
        ListElement{ radius: "15"; angle: "315"; value: "9.19499"; }
        ListElement{ radius: "15"; angle: "320"; value: "12.4109"; }
        ListElement{ radius: "15"; angle: "325"; value: "15.8715"; }
        ListElement{ radius: "15"; angle: "330"; value: "19.5503"; }
        ListElement{ radius: "15"; angle: "335"; value: "23.4194"; }
        ListElement{ radius: "15"; angle: "340"; value: "27.4493"; }
        ListElement{ radius: "15"; angle: "345"; value: "31.6094"; }
        ListElement{ radius: "15"; angle: "350"; value: "35.8679"; }
        ListElement{ radius: "15"; angle: "355"; value: "40.1925"; }
        ListElement{ radius: "15"; angle: "360"; value: "44.5503"; }
        ListElement{ radius: "20"; angle: "0"; value: "40.4508"; }
        ListElement{ radius: "20"; angle: "5"; value: "44.8086"; }
        ListElement{ radius: "20"; angle: "10"; value: "49.1333"; }
        ListElement{ radius: "20"; angle: "15"; value: "53.3918"; }
        ListElement{ radius: "20"; angle: "20"; value: "57.5519"; }
        ListElement{ radius: "20"; angle: "25"; value: "61.5818"; }
        ListElement{ radius: "20"; angle: "30"; value: "65.4508"; }
        ListElement{ radius: "20"; angle: "35"; value: "69.1297"; }
        ListElement{ radius: "20"; angle: "40"; value: "72.5902"; }
        ListElement{ radius: "20"; angle: "45"; value: "75.8062"; }
        ListElement{ radius: "20"; angle: "50"; value: "78.7531"; }
        ListElement{ radius: "20"; angle: "55"; value: "81.4085"; }
        ListElement{ radius: "20"; angle: "60"; value: "83.7521"; }
        ListElement{ radius: "20"; angle: "65"; value: "85.7662"; }
        ListElement{ radius: "20"; angle: "70"; value: "87.4355"; }
        ListElement{ radius: "20"; angle: "75"; value: "88.7471"; }
        ListElement{ radius: "20"; angle: "80"; value: "89.6912"; }
        ListElement{ radius: "20"; angle: "85"; value: "90.2606"; }
        ListElement{ radius: "20"; angle: "90"; value: "90.4508"; }
        ListElement{ radius: "20"; angle: "95"; value: "90.2606"; }
        ListElement{ radius: "20"; angle: "100"; value: "89.6912"; }
        ListElement{ radius: "20"; angle: "105"; value: "88.7471"; }
        ListElement{ radius: "20"; angle: "110"; value: "87.4355"; }
        ListElement{ radius: "20"; angle: "115"; value: "85.7662"; }
        ListElement{ radius: "20"; angle: "120"; value: "83.7521"; }
        ListElement{ radius: "20"; angle: "125"; value: "81.4085"; }
        ListElement{ radius: "20"; angle: "130"; value: "78.7531"; }
        ListElement{ radius: "20"; angle: "135"; value: "75.8062"; }
        ListElement{ radius: "20"; angle: "140"; value: "72.5902"; }
        ListElement{ radius: "20"; angle: "145"; value: "69.1297"; }
        ListElement{ radius: "20"; angle: "150"; value: "65.4508"; }
        ListElement{ radius: "20"; angle: "155"; value: "61.5818"; }
        ListElement{ radius: "20"; angle: "160"; value: "57.5519"; }
        ListElement{ radius: "20"; angle: "165"; value: "53.3918"; }
        ListElement{ radius: "20"; angle: "170"; value: "49.1333"; }
        ListElement{ radius: "20"; angle: "175"; value: "44.8086"; }
        ListElement{ radius: "20"; angle: "180"; value: "40.4508"; }
        ListElement{ radius: "20"; angle: "185"; value: "36.0931"; }
        ListElement{ radius: "20"; angle: "190"; value: "31.7684"; }
        ListElement{ radius: "20"; angle: "195"; value: "27.5099"; }
        ListElement{ radius: "20"; angle: "200"; value: "23.3498"; }
        ListElement{ radius: "20"; angle: "205"; value: "19.3199"; }
        ListElement{ radius: "20"; angle: "210"; value: "15.4508"; }
        ListElement{ radius: "20"; angle: "215"; value: "11.772"; }
        ListElement{ radius: "20"; angle: "220"; value: "8.31147"; }
        ListElement{ radius: "20"; angle: "225"; value: "5.09551"; }
        ListElement{ radius: "20"; angle: "230"; value: "2.14863"; }
        ListElement{ radius: "20"; angle: "235"; value: "-0.506752"; }
        ListElement{ radius: "20"; angle: "240"; value: "-2.85042"; }
        ListElement{ radius: "20"; angle: "245"; value: "-4.86454"; }
        ListElement{ radius: "20"; angle: "250"; value: "-6.53378"; }
        ListElement{ radius: "20"; angle: "255"; value: "-7.84544"; }
        ListElement{ radius: "20"; angle: "260"; value: "-8.78954"; }
        ListElement{ radius: "20"; angle: "265"; value: "-9.35889"; }
        ListElement{ radius: "20"; angle: "270"; value: "-9.54915"; }
        ListElement{ radius: "20"; angle: "275"; value: "-9.35889"; }
        ListElement{ radius: "20"; angle: "280"; value: "-8.78954"; }
        ListElement{ radius: "20"; angle: "285"; value: "-7.84544"; }
        ListElement{ radius: "20"; angle: "290"; value: "-6.53378"; }
        ListElement{ radius: "20"; angle: "295"; value: "-4.86454"; }
        ListElement{ radius: "20"; angle: "300"; value: "-2.85042"; }
        ListElement{ radius: "20"; angle: "305"; value: "-0.506752"; }
        ListElement{ radius: "20"; angle: "310"; value: "2.14863"; }
        ListElement{ radius: "20"; angle: "315"; value: "5.09551"; }
        ListElement{ radius: "20"; angle: "320"; value: "8.31147"; }
        ListElement{ radius: "20"; angle: "325"; value: "11.772"; }
        ListElement{ radius: "20"; angle: "330"; value: "15.4508"; }
        ListElement{ radius: "20"; angle: "335"; value: "19.3199"; }
        ListElement{ radius: "20"; angle: "340"; value: "23.3498"; }
        ListElement{ radius: "20"; angle: "345"; value: "27.5099"; }
        ListElement{ radius: "20"; angle: "350"; value: "31.7684"; }
        ListElement{ radius: "20"; angle: "355"; value: "36.0931"; }
        ListElement{ radius: "20"; angle: "360"; value: "40.4508"; }
        ListElement{ radius: "25"; angle: "0"; value: "35.3553"; }
        ListElement{ radius: "25"; angle: "5"; value: "39.7131"; }
        ListElement{ radius: "25"; angle: "10"; value: "44.0377"; }
        ListElement{ radius: "25"; angle: "15"; value: "48.2963"; }
        ListElement{ radius: "25"; angle: "20"; value: "52.4563"; }
        ListElement{ radius: "25"; angle: "25"; value: "56.4863"; }
        ListElement{ radius: "25"; angle: "30"; value: "60.3553"; }
        ListElement{ radius: "25"; angle: "35"; value: "64.0342"; }
        ListElement{ radius: "25"; angle: "40"; value: "67.4947"; }
        ListElement{ radius: "25"; angle: "45"; value: "70.7107"; }
        ListElement{ radius: "25"; angle: "50"; value: "73.6576"; }
        ListElement{ radius: "25"; angle: "55"; value: "76.3129"; }
        ListElement{ radius: "25"; angle: "60"; value: "78.6566"; }
        ListElement{ radius: "25"; angle: "65"; value: "80.6707"; }
        ListElement{ radius: "25"; angle: "70"; value: "82.34"; }
        ListElement{ radius: "25"; angle: "75"; value: "83.6516"; }
        ListElement{ radius: "25"; angle: "80"; value: "84.5957"; }
        ListElement{ radius: "25"; angle: "85"; value: "85.1651"; }
        ListElement{ radius: "25"; angle: "90"; value: "85.3553"; }
        ListElement{ radius: "25"; angle: "95"; value: "85.1651"; }
        ListElement{ radius: "25"; angle: "100"; value: "84.5957"; }
        ListElement{ radius: "25"; angle: "105"; value: "83.6516"; }
        ListElement{ radius: "25"; angle: "110"; value: "82.34"; }
        ListElement{ radius: "25"; angle: "115"; value: "80.6707"; }
        ListElement{ radius: "25"; angle: "120"; value: "78.6566"; }
        ListElement{ radius: "25"; angle: "125"; value: "76.3129"; }
        ListElement{ radius: "25"; angle: "130"; value: "73.6576"; }
        ListElement{ radius: "25"; angle: "135"; value: "70.7107"; }
        ListElement{ radius: "25"; angle: "140"; value: "67.4947"; }
        ListElement{ radius: "25"; angle: "145"; value: "64.0342"; }
        ListElement{ radius: "25"; angle: "150"; value: "60.3553"; }
        ListElement{ radius: "25"; angle: "155"; value: "56.4863"; }
        ListElement{ radius: "25"; angle: "160"; value: "52.4563"; }
        ListElement{ radius: "25"; angle: "165"; value: "48.2963"; }
        ListElement{ radius: "25"; angle: "170"; value: "44.0377"; }
        ListElement{ radius: "25"; angle: "175"; value: "39.7131"; }
        ListElement{ radius: "25"; angle: "180"; value: "35.3553"; }
        ListElement{ radius: "25"; angle: "185"; value: "30.9976"; }
        ListElement{ radius: "25"; angle: "190"; value: "26.6729"; }
        ListElement{ radius: "25"; angle: "195"; value: "22.4144"; }
        ListElement{ radius: "25"; angle: "200"; value: "18.2543"; }
        ListElement{ radius: "25"; angle: "205"; value: "14.2244"; }
        ListElement{ radius: "25"; angle: "210"; value: "10.3553"; }
        ListElement{ radius: "25"; angle: "215"; value: "6.67652"; }
        ListElement{ radius: "25"; angle: "220"; value: "3.21596"; }
        ListElement{ radius: "25"; angle: "225"; value: "5.55112e-15"; }
        ListElement{ radius: "25"; angle: "230"; value: "-2.94688"; }
        ListElement{ radius: "25"; angle: "235"; value: "-5.60226"; }
        ListElement{ radius: "25"; angle: "240"; value: "-7.94593"; }
        ListElement{ radius: "25"; angle: "245"; value: "-9.96005"; }
        ListElement{ radius: "25"; angle: "250"; value: "-11.6293"; }
        ListElement{ radius: "25"; angle: "255"; value: "-12.941"; }
        ListElement{ radius: "25"; angle: "260"; value: "-13.885"; }
        ListElement{ radius: "25"; angle: "265"; value: "-14.4544"; }
        ListElement{ radius: "25"; angle: "270"; value: "-14.6447"; }
        ListElement{ radius: "25"; angle: "275"; value: "-14.4544"; }
        ListElement{ radius: "25"; angle: "280"; value: "-13.885"; }
        ListElement{ radius: "25"; angle: "285"; value: "-12.941"; }
        ListElement{ radius: "25"; angle: "290"; value: "-11.6293"; }
        ListElement{ radius: "25"; angle: "295"; value: "-9.96005"; }
        ListElement{ radius: "25"; angle: "300"; value: "-7.94593"; }
        ListElement{ radius: "25"; angle: "305"; value: "-5.60226"; }
        ListElement{ radius: "25"; angle: "310"; value: "-2.94688"; }
        ListElement{ radius: "25"; angle: "315"; value: "-5.55112e-15"; }
        ListElement{ radius: "25"; angle: "320"; value: "3.21596"; }
        ListElement{ radius: "25"; angle: "325"; value: "6.67652"; }
        ListElement{ radius: "25"; angle: "330"; value: "10.3553"; }
        ListElement{ radius: "25"; angle: "335"; value: "14.2244"; }
        ListElement{ radius: "25"; angle: "340"; value: "18.2543"; }
        ListElement{ radius: "25"; angle: "345"; value: "22.4144"; }
        ListElement{ radius: "25"; angle: "350"; value: "26.6729"; }
        ListElement{ radius: "25"; angle: "355"; value: "30.9976"; }
        ListElement{ radius: "25"; angle: "360"; value: "35.3553"; }
        ListElement{ radius: "30"; angle: "0"; value: "29.3893"; }
        ListElement{ radius: "30"; angle: "5"; value: "33.747"; }
        ListElement{ radius: "30"; angle: "10"; value: "38.0717"; }
        ListElement{ radius: "30"; angle: "15"; value: "42.3302"; }
        ListElement{ radius: "30"; angle: "20"; value: "46.4903"; }
        ListElement{ radius: "30"; angle: "25"; value: "50.5202"; }
        ListElement{ radius: "30"; angle: "30"; value: "54.3893"; }
        ListElement{ radius: "30"; angle: "35"; value: "58.0681"; }
        ListElement{ radius: "30"; angle: "40"; value: "61.5286"; }
        ListElement{ radius: "30"; angle: "45"; value: "64.7446"; }
        ListElement{ radius: "30"; angle: "50"; value: "67.6915"; }
        ListElement{ radius: "30"; angle: "55"; value: "70.3469"; }
        ListElement{ radius: "30"; angle: "60"; value: "72.6905"; }
        ListElement{ radius: "30"; angle: "65"; value: "74.7047"; }
        ListElement{ radius: "30"; angle: "70"; value: "76.3739"; }
        ListElement{ radius: "30"; angle: "75"; value: "77.6856"; }
        ListElement{ radius: "30"; angle: "80"; value: "78.6297"; }
        ListElement{ radius: "30"; angle: "85"; value: "79.199"; }
        ListElement{ radius: "30"; angle: "90"; value: "79.3893"; }
        ListElement{ radius: "30"; angle: "95"; value: "79.199"; }
        ListElement{ radius: "30"; angle: "100"; value: "78.6297"; }
        ListElement{ radius: "30"; angle: "105"; value: "77.6856"; }
        ListElement{ radius: "30"; angle: "110"; value: "76.3739"; }
        ListElement{ radius: "30"; angle: "115"; value: "74.7047"; }
        ListElement{ radius: "30"; angle: "120"; value: "72.6905"; }
        ListElement{ radius: "30"; angle: "125"; value: "70.3469"; }
        ListElement{ radius: "30"; angle: "130"; value: "67.6915"; }
        ListElement{ radius: "30"; angle: "135"; value: "64.7446"; }
        ListElement{ radius: "30"; angle: "140"; value: "61.5286"; }
        ListElement{ radius: "30"; angle: "145"; value: "58.0681"; }
        ListElement{ radius: "30"; angle: "150"; value: "54.3893"; }
        ListElement{ radius: "30"; angle: "155"; value: "50.5202"; }
        ListElement{ radius: "30"; angle: "160"; value: "46.4903"; }
        ListElement{ radius: "30"; angle: "165"; value: "42.3302"; }
        ListElement{ radius: "30"; angle: "170"; value: "38.0717"; }
        ListElement{ radius: "30"; angle: "175"; value: "33.747"; }
        ListElement{ radius: "30"; angle: "180"; value: "29.3893"; }
        ListElement{ radius: "30"; angle: "185"; value: "25.0315"; }
        ListElement{ radius: "30"; angle: "190"; value: "20.7069"; }
        ListElement{ radius: "30"; angle: "195"; value: "16.4483"; }
        ListElement{ radius: "30"; angle: "200"; value: "12.2883"; }
        ListElement{ radius: "30"; angle: "205"; value: "8.25835"; }
        ListElement{ radius: "30"; angle: "210"; value: "4.38926"; }
        ListElement{ radius: "30"; angle: "215"; value: "0.710441"; }
        ListElement{ radius: "30"; angle: "220"; value: "-2.75012"; }
        ListElement{ radius: "30"; angle: "225"; value: "-5.96608"; }
        ListElement{ radius: "30"; angle: "230"; value: "-8.91296"; }
        ListElement{ radius: "30"; angle: "235"; value: "-11.5683"; }
        ListElement{ radius: "30"; angle: "240"; value: "-13.912"; }
        ListElement{ radius: "30"; angle: "245"; value: "-15.9261"; }
        ListElement{ radius: "30"; angle: "250"; value: "-17.5954"; }
        ListElement{ radius: "30"; angle: "255"; value: "-18.907"; }
        ListElement{ radius: "30"; angle: "260"; value: "-19.8511"; }
        ListElement{ radius: "30"; angle: "265"; value: "-20.4205"; }
        ListElement{ radius: "30"; angle: "270"; value: "-20.6107"; }
        ListElement{ radius: "30"; angle: "275"; value: "-20.4205"; }
        ListElement{ radius: "30"; angle: "280"; value: "-19.8511"; }
        ListElement{ radius: "30"; angle: "285"; value: "-18.907"; }
        ListElement{ radius: "30"; angle: "290"; value: "-17.5954"; }
        ListElement{ radius: "30"; angle: "295"; value: "-15.9261"; }
        ListElement{ radius: "30"; angle: "300"; value: "-13.912"; }
        ListElement{ radius: "30"; angle: "305"; value: "-11.5683"; }
        ListElement{ radius: "30"; angle: "310"; value: "-8.91296"; }
        ListElement{ radius: "30"; angle: "315"; value: "-5.96608"; }
        ListElement{ radius: "30"; angle: "320"; value: "-2.75012"; }
        ListElement{ radius: "30"; angle: "325"; value: "0.710441"; }
        ListElement{ radius: "30"; angle: "330"; value: "4.38926"; }
        ListElement{ radius: "30"; angle: "335"; value: "8.25835"; }
        ListElement{ radius: "30"; angle: "340"; value: "12.2883"; }
        ListElement{ radius: "30"; angle: "345"; value: "16.4483"; }
        ListElement{ radius: "30"; angle: "350"; value: "20.7069"; }
        ListElement{ radius: "30"; angle: "355"; value: "25.0315"; }
        ListElement{ radius: "30"; angle: "360"; value: "29.3893"; }
        ListElement{ radius: "35"; angle: "0"; value: "22.6995"; }
        ListElement{ radius: "35"; angle: "5"; value: "27.0573"; }
        ListElement{ radius: "35"; angle: "10"; value: "31.3819"; }
        ListElement{ radius: "35"; angle: "15"; value: "35.6405"; }
        ListElement{ radius: "35"; angle: "20"; value: "39.8005"; }
        ListElement{ radius: "35"; angle: "25"; value: "43.8304"; }
        ListElement{ radius: "35"; angle: "30"; value: "47.6995"; }
        ListElement{ radius: "35"; angle: "35"; value: "51.3783"; }
        ListElement{ radius: "35"; angle: "40"; value: "54.8389"; }
        ListElement{ radius: "35"; angle: "45"; value: "58.0549"; }
        ListElement{ radius: "35"; angle: "50"; value: "61.0017"; }
        ListElement{ radius: "35"; angle: "55"; value: "63.6571"; }
        ListElement{ radius: "35"; angle: "60"; value: "66.0008"; }
        ListElement{ radius: "35"; angle: "65"; value: "68.0149"; }
        ListElement{ radius: "35"; angle: "70"; value: "69.6842"; }
        ListElement{ radius: "35"; angle: "75"; value: "70.9958"; }
        ListElement{ radius: "35"; angle: "80"; value: "71.9399"; }
        ListElement{ radius: "35"; angle: "85"; value: "72.5093"; }
        ListElement{ radius: "35"; angle: "90"; value: "72.6995"; }
        ListElement{ radius: "35"; angle: "95"; value: "72.5093"; }
        ListElement{ radius: "35"; angle: "100"; value: "71.9399"; }
        ListElement{ radius: "35"; angle: "105"; value: "70.9958"; }
        ListElement{ radius: "35"; angle: "110"; value: "69.6842"; }
        ListElement{ radius: "35"; angle: "115"; value: "68.0149"; }
        ListElement{ radius: "35"; angle: "120"; value: "66.0008"; }
        ListElement{ radius: "35"; angle: "125"; value: "63.6571"; }
        ListElement{ radius: "35"; angle: "130"; value: "61.0017"; }
        ListElement{ radius: "35"; angle: "135"; value: "58.0549"; }
        ListElement{ radius: "35"; angle: "140"; value: "54.8389"; }
        ListElement{ radius: "35"; angle: "145"; value: "51.3783"; }
        ListElement{ radius: "35"; angle: "150"; value: "47.6995"; }
        ListElement{ radius: "35"; angle: "155"; value: "43.8304"; }
        ListElement{ radius: "35"; angle: "160"; value: "39.8005"; }
        ListElement{ radius: "35"; angle: "165"; value: "35.6405"; }
        ListElement{ radius: "35"; angle: "170"; value: "31.3819"; }
        ListElement{ radius: "35"; angle: "175"; value: "27.0573"; }
        ListElement{ radius: "35"; angle: "180"; value: "22.6995"; }
        ListElement{ radius: "35"; angle: "185"; value: "18.3417"; }
        ListElement{ radius: "35"; angle: "190"; value: "14.0171"; }
        ListElement{ radius: "35"; angle: "195"; value: "9.75857"; }
        ListElement{ radius: "35"; angle: "200"; value: "5.59852"; }
        ListElement{ radius: "35"; angle: "205"; value: "1.56861"; }
        ListElement{ radius: "35"; angle: "210"; value: "-2.30048"; }
        ListElement{ radius: "35"; angle: "215"; value: "-5.9793"; }
        ListElement{ radius: "35"; angle: "220"; value: "-9.43986"; }
        ListElement{ radius: "35"; angle: "225"; value: "-12.6558"; }
        ListElement{ radius: "35"; angle: "230"; value: "-15.6027"; }
        ListElement{ radius: "35"; angle: "235"; value: "-18.2581"; }
        ListElement{ radius: "35"; angle: "240"; value: "-20.6017"; }
        ListElement{ radius: "35"; angle: "245"; value: "-22.6159"; }
        ListElement{ radius: "35"; angle: "250"; value: "-24.2851"; }
        ListElement{ radius: "35"; angle: "255"; value: "-25.5968"; }
        ListElement{ radius: "35"; angle: "260"; value: "-26.5409"; }
        ListElement{ radius: "35"; angle: "265"; value: "-27.1102"; }
        ListElement{ radius: "35"; angle: "270"; value: "-27.3005"; }
        ListElement{ radius: "35"; angle: "275"; value: "-27.1102"; }
        ListElement{ radius: "35"; angle: "280"; value: "-26.5409"; }
        ListElement{ radius: "35"; angle: "285"; value: "-25.5968"; }
        ListElement{ radius: "35"; angle: "290"; value: "-24.2851"; }
        ListElement{ radius: "35"; angle: "295"; value: "-22.6159"; }
        ListElement{ radius: "35"; angle: "300"; value: "-20.6017"; }
        ListElement{ radius: "35"; angle: "305"; value: "-18.2581"; }
        ListElement{ radius: "35"; angle: "310"; value: "-15.6027"; }
        ListElement{ radius: "35"; angle: "315"; value: "-12.6558"; }
        ListElement{ radius: "35"; angle: "320"; value: "-9.43986"; }
        ListElement{ radius: "35"; angle: "325"; value: "-5.9793"; }
        ListElement{ radius: "35"; angle: "330"; value: "-2.30048"; }
        ListElement{ radius: "35"; angle: "335"; value: "1.56861"; }
        ListElement{ radius: "35"; angle: "340"; value: "5.59852"; }
        ListElement{ radius: "35"; angle: "345"; value: "9.75857"; }
        ListElement{ radius: "35"; angle: "350"; value: "14.0171"; }
        ListElement{ radius: "35"; angle: "355"; value: "18.3417"; }
        ListElement{ radius: "35"; angle: "360"; value: "22.6995"; }
        ListElement{ radius: "40"; angle: "0"; value: "15.4508"; }
        ListElement{ radius: "40"; angle: "5"; value: "19.8086"; }
        ListElement{ radius: "40"; angle: "10"; value: "24.1333"; }
        ListElement{ radius: "40"; angle: "15"; value: "28.3918"; }
        ListElement{ radius: "40"; angle: "20"; value: "32.5519"; }
        ListElement{ radius: "40"; angle: "25"; value: "36.5818"; }
        ListElement{ radius: "40"; angle: "30"; value: "40.4508"; }
        ListElement{ radius: "40"; angle: "35"; value: "44.1297"; }
        ListElement{ radius: "40"; angle: "40"; value: "47.5902"; }
        ListElement{ radius: "40"; angle: "45"; value: "50.8062"; }
        ListElement{ radius: "40"; angle: "50"; value: "53.7531"; }
        ListElement{ radius: "40"; angle: "55"; value: "56.4085"; }
        ListElement{ radius: "40"; angle: "60"; value: "58.7521"; }
        ListElement{ radius: "40"; angle: "65"; value: "60.7662"; }
        ListElement{ radius: "40"; angle: "70"; value: "62.4355"; }
        ListElement{ radius: "40"; angle: "75"; value: "63.7471"; }
        ListElement{ radius: "40"; angle: "80"; value: "64.6912"; }
        ListElement{ radius: "40"; angle: "85"; value: "65.2606"; }
        ListElement{ radius: "40"; angle: "90"; value: "65.4508"; }
        ListElement{ radius: "40"; angle: "95"; value: "65.2606"; }
        ListElement{ radius: "40"; angle: "100"; value: "64.6912"; }
        ListElement{ radius: "40"; angle: "105"; value: "63.7471"; }
        ListElement{ radius: "40"; angle: "110"; value: "62.4355"; }
        ListElement{ radius: "40"; angle: "115"; value: "60.7662"; }
        ListElement{ radius: "40"; angle: "120"; value: "58.7521"; }
        ListElement{ radius: "40"; angle: "125"; value: "56.4085"; }
        ListElement{ radius: "40"; angle: "130"; value: "53.7531"; }
        ListElement{ radius: "40"; angle: "135"; value: "50.8062"; }
        ListElement{ radius: "40"; angle: "140"; value: "47.5902"; }
        ListElement{ radius: "40"; angle: "145"; value: "44.1297"; }
        ListElement{ radius: "40"; angle: "150"; value: "40.4508"; }
        ListElement{ radius: "40"; angle: "155"; value: "36.5818"; }
        ListElement{ radius: "40"; angle: "160"; value: "32.5519"; }
        ListElement{ radius: "40"; angle: "165"; value: "28.3918"; }
        ListElement{ radius: "40"; angle: "170"; value: "24.1333"; }
        ListElement{ radius: "40"; angle: "175"; value: "19.8086"; }
        ListElement{ radius: "40"; angle: "180"; value: "15.4508"; }
        ListElement{ radius: "40"; angle: "185"; value: "11.0931"; }
        ListElement{ radius: "40"; angle: "190"; value: "6.76844"; }
        ListElement{ radius: "40"; angle: "195"; value: "2.5099"; }
        ListElement{ radius: "40"; angle: "200"; value: "-1.65016"; }
        ListElement{ radius: "40"; angle: "205"; value: "-5.68006"; }
        ListElement{ radius: "40"; angle: "210"; value: "-9.54915"; }
        ListElement{ radius: "40"; angle: "215"; value: "-13.228"; }
        ListElement{ radius: "40"; angle: "220"; value: "-16.6885"; }
        ListElement{ radius: "40"; angle: "225"; value: "-19.9045"; }
        ListElement{ radius: "40"; angle: "230"; value: "-22.8514"; }
        ListElement{ radius: "40"; angle: "235"; value: "-25.5068"; }
        ListElement{ radius: "40"; angle: "240"; value: "-27.8504"; }
        ListElement{ radius: "40"; angle: "245"; value: "-29.8645"; }
        ListElement{ radius: "40"; angle: "250"; value: "-31.5338"; }
        ListElement{ radius: "40"; angle: "255"; value: "-32.8454"; }
        ListElement{ radius: "40"; angle: "260"; value: "-33.7895"; }
        ListElement{ radius: "40"; angle: "265"; value: "-34.3589"; }
        ListElement{ radius: "40"; angle: "270"; value: "-34.5492"; }
        ListElement{ radius: "40"; angle: "275"; value: "-34.3589"; }
        ListElement{ radius: "40"; angle: "280"; value: "-33.7895"; }
        ListElement{ radius: "40"; angle: "285"; value: "-32.8454"; }
        ListElement{ radius: "40"; angle: "290"; value: "-31.5338"; }
        ListElement{ radius: "40"; angle: "295"; value: "-29.8645"; }
        ListElement{ radius: "40"; angle: "300"; value: "-27.8504"; }
        ListElement{ radius: "40"; angle: "305"; value: "-25.5068"; }
        ListElement{ radius: "40"; angle: "310"; value: "-22.8514"; }
        ListElement{ radius: "40"; angle: "315"; value: "-19.9045"; }
        ListElement{ radius: "40"; angle: "320"; value: "-16.6885"; }
        ListElement{ radius: "40"; angle: "325"; value: "-13.228"; }
        ListElement{ radius: "40"; angle: "330"; value: "-9.54915"; }
        ListElement{ radius: "40"; angle: "335"; value: "-5.68006"; }
        ListElement{ radius: "40"; angle: "340"; value: "-1.65016"; }
        ListElement{ radius: "40"; angle: "345"; value: "2.5099"; }
        ListElement{ radius: "40"; angle: "350"; value: "6.76844"; }
        ListElement{ radius: "40"; angle: "355"; value: "11.0931"; }
        ListElement{ radius: "40"; angle: "360"; value: "15.4508"; }
        ListElement{ radius: "45"; angle: "0"; value: "7.82172"; }
        ListElement{ radius: "45"; angle: "5"; value: "12.1795"; }
        ListElement{ radius: "45"; angle: "10"; value: "16.5041"; }
        ListElement{ radius: "45"; angle: "15"; value: "20.7627"; }
        ListElement{ radius: "45"; angle: "20"; value: "24.9227"; }
        ListElement{ radius: "45"; angle: "25"; value: "28.9526"; }
        ListElement{ radius: "45"; angle: "30"; value: "32.8217"; }
        ListElement{ radius: "45"; angle: "35"; value: "36.5005"; }
        ListElement{ radius: "45"; angle: "40"; value: "39.9611"; }
        ListElement{ radius: "45"; angle: "45"; value: "43.1771"; }
        ListElement{ radius: "45"; angle: "50"; value: "46.1239"; }
        ListElement{ radius: "45"; angle: "55"; value: "48.7793"; }
        ListElement{ radius: "45"; angle: "60"; value: "51.123"; }
        ListElement{ radius: "45"; angle: "65"; value: "53.1371"; }
        ListElement{ radius: "45"; angle: "70"; value: "54.8064"; }
        ListElement{ radius: "45"; angle: "75"; value: "56.118"; }
        ListElement{ radius: "45"; angle: "80"; value: "57.0621"; }
        ListElement{ radius: "45"; angle: "85"; value: "57.6315"; }
        ListElement{ radius: "45"; angle: "90"; value: "57.8217"; }
        ListElement{ radius: "45"; angle: "95"; value: "57.6315"; }
        ListElement{ radius: "45"; angle: "100"; value: "57.0621"; }
        ListElement{ radius: "45"; angle: "105"; value: "56.118"; }
        ListElement{ radius: "45"; angle: "110"; value: "54.8064"; }
        ListElement{ radius: "45"; angle: "115"; value: "53.1371"; }
        ListElement{ radius: "45"; angle: "120"; value: "51.123"; }
        ListElement{ radius: "45"; angle: "125"; value: "48.7793"; }
        ListElement{ radius: "45"; angle: "130"; value: "46.1239"; }
        ListElement{ radius: "45"; angle: "135"; value: "43.1771"; }
        ListElement{ radius: "45"; angle: "140"; value: "39.9611"; }
        ListElement{ radius: "45"; angle: "145"; value: "36.5005"; }
        ListElement{ radius: "45"; angle: "150"; value: "32.8217"; }
        ListElement{ radius: "45"; angle: "155"; value: "28.9526"; }
        ListElement{ radius: "45"; angle: "160"; value: "24.9227"; }
        ListElement{ radius: "45"; angle: "165"; value: "20.7627"; }
        ListElement{ radius: "45"; angle: "170"; value: "16.5041"; }
        ListElement{ radius: "45"; angle: "175"; value: "12.1795"; }
        ListElement{ radius: "45"; angle: "180"; value: "7.82172"; }
        ListElement{ radius: "45"; angle: "185"; value: "3.46394"; }
        ListElement{ radius: "45"; angle: "190"; value: "-0.860686"; }
        ListElement{ radius: "45"; angle: "195"; value: "-5.11923"; }
        ListElement{ radius: "45"; angle: "200"; value: "-9.27928"; }
        ListElement{ radius: "45"; angle: "205"; value: "-13.3092"; }
        ListElement{ radius: "45"; angle: "210"; value: "-17.1783"; }
        ListElement{ radius: "45"; angle: "215"; value: "-20.8571"; }
        ListElement{ radius: "45"; angle: "220"; value: "-24.3177"; }
        ListElement{ radius: "45"; angle: "225"; value: "-27.5336"; }
        ListElement{ radius: "45"; angle: "230"; value: "-30.4805"; }
        ListElement{ radius: "45"; angle: "235"; value: "-33.1359"; }
        ListElement{ radius: "45"; angle: "240"; value: "-35.4795"; }
        ListElement{ radius: "45"; angle: "245"; value: "-37.4937"; }
        ListElement{ radius: "45"; angle: "250"; value: "-39.1629"; }
        ListElement{ radius: "45"; angle: "255"; value: "-40.4746"; }
        ListElement{ radius: "45"; angle: "260"; value: "-41.4187"; }
        ListElement{ radius: "45"; angle: "265"; value: "-41.988"; }
        ListElement{ radius: "45"; angle: "270"; value: "-42.1783"; }
        ListElement{ radius: "45"; angle: "275"; value: "-41.988"; }
        ListElement{ radius: "45"; angle: "280"; value: "-41.4187"; }
        ListElement{ radius: "45"; angle: "285"; value: "-40.4746"; }
        ListElement{ radius: "45"; angle: "290"; value: "-39.1629"; }
        ListElement{ radius: "45"; angle: "295"; value: "-37.4937"; }
        ListElement{ radius: "45"; angle: "300"; value: "-35.4795"; }
        ListElement{ radius: "45"; angle: "305"; value: "-33.1359"; }
        ListElement{ radius: "45"; angle: "310"; value: "-30.4805"; }
        ListElement{ radius: "45"; angle: "315"; value: "-27.5336"; }
        ListElement{ radius: "45"; angle: "320"; value: "-24.3177"; }
        ListElement{ radius: "45"; angle: "325"; value: "-20.8571"; }
        ListElement{ radius: "45"; angle: "330"; value: "-17.1783"; }
        ListElement{ radius: "45"; angle: "335"; value: "-13.3092"; }
        ListElement{ radius: "45"; angle: "340"; value: "-9.27928"; }
        ListElement{ radius: "45"; angle: "345"; value: "-5.11923"; }
        ListElement{ radius: "45"; angle: "350"; value: "-0.860686"; }
        ListElement{ radius: "45"; angle: "355"; value: "3.46394"; }
        ListElement{ radius: "45"; angle: "360"; value: "7.82172"; }
        ListElement{ radius: "50"; angle: "0"; value: "3.06162e-15"; }
        ListElement{ radius: "50"; angle: "5"; value: "4.35779"; }
        ListElement{ radius: "50"; angle: "10"; value: "8.68241"; }
        ListElement{ radius: "50"; angle: "15"; value: "12.941"; }
        ListElement{ radius: "50"; angle: "20"; value: "17.101"; }
        ListElement{ radius: "50"; angle: "25"; value: "21.1309"; }
        ListElement{ radius: "50"; angle: "30"; value: "25"; }
        ListElement{ radius: "50"; angle: "35"; value: "28.6788"; }
        ListElement{ radius: "50"; angle: "40"; value: "32.1394"; }
        ListElement{ radius: "50"; angle: "45"; value: "35.3553"; }
        ListElement{ radius: "50"; angle: "50"; value: "38.3022"; }
        ListElement{ radius: "50"; angle: "55"; value: "40.9576"; }
        ListElement{ radius: "50"; angle: "60"; value: "43.3013"; }
        ListElement{ radius: "50"; angle: "65"; value: "45.3154"; }
        ListElement{ radius: "50"; angle: "70"; value: "46.9846"; }
        ListElement{ radius: "50"; angle: "75"; value: "48.2963"; }
        ListElement{ radius: "50"; angle: "80"; value: "49.2404"; }
        ListElement{ radius: "50"; angle: "85"; value: "49.8097"; }
        ListElement{ radius: "50"; angle: "90"; value: "50"; }
        ListElement{ radius: "50"; angle: "95"; value: "49.8097"; }
        ListElement{ radius: "50"; angle: "100"; value: "49.2404"; }
        ListElement{ radius: "50"; angle: "105"; value: "48.2963"; }
        ListElement{ radius: "50"; angle: "110"; value: "46.9846"; }
        ListElement{ radius: "50"; angle: "115"; value: "45.3154"; }
        ListElement{ radius: "50"; angle: "120"; value: "43.3013"; }
        ListElement{ radius: "50"; angle: "125"; value: "40.9576"; }
        ListElement{ radius: "50"; angle: "130"; value: "38.3022"; }
        ListElement{ radius: "50"; angle: "135"; value: "35.3553"; }
        ListElement{ radius: "50"; angle: "140"; value: "32.1394"; }
        ListElement{ radius: "50"; angle: "145"; value: "28.6788"; }
        ListElement{ radius: "50"; angle: "150"; value: "25"; }
        ListElement{ radius: "50"; angle: "155"; value: "21.1309"; }
        ListElement{ radius: "50"; angle: "160"; value: "17.101"; }
        ListElement{ radius: "50"; angle: "165"; value: "12.941"; }
        ListElement{ radius: "50"; angle: "170"; value: "8.68241"; }
        ListElement{ radius: "50"; angle: "175"; value: "4.35779"; }
        ListElement{ radius: "50"; angle: "180"; value: "9.18485e-15"; }
        ListElement{ radius: "50"; angle: "185"; value: "-4.35779"; }
        ListElement{ radius: "50"; angle: "190"; value: "-8.68241"; }
        ListElement{ radius: "50"; angle: "195"; value: "-12.941"; }
        ListElement{ radius: "50"; angle: "200"; value: "-17.101"; }
        ListElement{ radius: "50"; angle: "205"; value: "-21.1309"; }
        ListElement{ radius: "50"; angle: "210"; value: "-25"; }
        ListElement{ radius: "50"; angle: "215"; value: "-28.6788"; }
        ListElement{ radius: "50"; angle: "220"; value: "-32.1394"; }
        ListElement{ radius: "50"; angle: "225"; value: "-35.3553"; }
        ListElement{ radius: "50"; angle: "230"; value: "-38.3022"; }
        ListElement{ radius: "50"; angle: "235"; value: "-40.9576"; }
        ListElement{ radius: "50"; angle: "240"; value: "-43.3013"; }
        ListElement{ radius: "50"; angle: "245"; value: "-45.3154"; }
        ListElement{ radius: "50"; angle: "250"; value: "-46.9846"; }
        ListElement{ radius: "50"; angle: "255"; value: "-48.2963"; }
        ListElement{ radius: "50"; angle: "260"; value: "-49.2404"; }
        ListElement{ radius: "50"; angle: "265"; value: "-49.8097"; }
        ListElement{ radius: "50"; angle: "270"; value: "-50"; }
        ListElement{ radius: "50"; angle: "275"; value: "-49.8097"; }
        ListElement{ radius: "50"; angle: "280"; value: "-49.2404"; }
        ListElement{ radius: "50"; angle: "285"; value: "-48.2963"; }
        ListElement{ radius: "50"; angle: "290"; value: "-46.9846"; }
        ListElement{ radius: "50"; angle: "295"; value: "-45.3154"; }
        ListElement{ radius: "50"; angle: "300"; value: "-43.3013"; }
        ListElement{ radius: "50"; angle: "305"; value: "-40.9576"; }
        ListElement{ radius: "50"; angle: "310"; value: "-38.3022"; }
        ListElement{ radius: "50"; angle: "315"; value: "-35.3553"; }
        ListElement{ radius: "50"; angle: "320"; value: "-32.1394"; }
        ListElement{ radius: "50"; angle: "325"; value: "-28.6788"; }
        ListElement{ radius: "50"; angle: "330"; value: "-25"; }
        ListElement{ radius: "50"; angle: "335"; value: "-21.1309"; }
        ListElement{ radius: "50"; angle: "340"; value: "-17.101"; }
        ListElement{ radius: "50"; angle: "345"; value: "-12.941"; }
        ListElement{ radius: "50"; angle: "350"; value: "-8.68241"; }
        ListElement{ radius: "50"; angle: "355"; value: "-4.35779"; }
        ListElement{ radius: "50"; angle: "360"; value: "-9.18485e-15"; }
        ListElement{ radius: "55"; angle: "0"; value: "-7.82172"; }
        ListElement{ radius: "55"; angle: "5"; value: "-3.46394"; }
        ListElement{ radius: "55"; angle: "10"; value: "0.860686"; }
        ListElement{ radius: "55"; angle: "15"; value: "5.11923"; }
        ListElement{ radius: "55"; angle: "20"; value: "9.27928"; }
        ListElement{ radius: "55"; angle: "25"; value: "13.3092"; }
        ListElement{ radius: "55"; angle: "30"; value: "17.1783"; }
        ListElement{ radius: "55"; angle: "35"; value: "20.8571"; }
        ListElement{ radius: "55"; angle: "40"; value: "24.3177"; }
        ListElement{ radius: "55"; angle: "45"; value: "27.5336"; }
        ListElement{ radius: "55"; angle: "50"; value: "30.4805"; }
        ListElement{ radius: "55"; angle: "55"; value: "33.1359"; }
        ListElement{ radius: "55"; angle: "60"; value: "35.4795"; }
        ListElement{ radius: "55"; angle: "65"; value: "37.4937"; }
        ListElement{ radius: "55"; angle: "70"; value: "39.1629"; }
        ListElement{ radius: "55"; angle: "75"; value: "40.4746"; }
        ListElement{ radius: "55"; angle: "80"; value: "41.4187"; }
        ListElement{ radius: "55"; angle: "85"; value: "41.988"; }
        ListElement{ radius: "55"; angle: "90"; value: "42.1783"; }
        ListElement{ radius: "55"; angle: "95"; value: "41.988"; }
        ListElement{ radius: "55"; angle: "100"; value: "41.4187"; }
        ListElement{ radius: "55"; angle: "105"; value: "40.4746"; }
        ListElement{ radius: "55"; angle: "110"; value: "39.1629"; }
        ListElement{ radius: "55"; angle: "115"; value: "37.4937"; }
        ListElement{ radius: "55"; angle: "120"; value: "35.4795"; }
        ListElement{ radius: "55"; angle: "125"; value: "33.1359"; }
        ListElement{ radius: "55"; angle: "130"; value: "30.4805"; }
        ListElement{ radius: "55"; angle: "135"; value: "27.5336"; }
        ListElement{ radius: "55"; angle: "140"; value: "24.3177"; }
        ListElement{ radius: "55"; angle: "145"; value: "20.8571"; }
        ListElement{ radius: "55"; angle: "150"; value: "17.1783"; }
        ListElement{ radius: "55"; angle: "155"; value: "13.3092"; }
        ListElement{ radius: "55"; angle: "160"; value: "9.27928"; }
        ListElement{ radius: "55"; angle: "165"; value: "5.11923"; }
        ListElement{ radius: "55"; angle: "170"; value: "0.860686"; }
        ListElement{ radius: "55"; angle: "175"; value: "-3.46394"; }
        ListElement{ radius: "55"; angle: "180"; value: "-7.82172"; }
        ListElement{ radius: "55"; angle: "185"; value: "-12.1795"; }
        ListElement{ radius: "55"; angle: "190"; value: "-16.5041"; }
        ListElement{ radius: "55"; angle: "195"; value: "-20.7627"; }
        ListElement{ radius: "55"; angle: "200"; value: "-24.9227"; }
        ListElement{ radius: "55"; angle: "205"; value: "-28.9526"; }
        ListElement{ radius: "55"; angle: "210"; value: "-32.8217"; }
        ListElement{ radius: "55"; angle: "215"; value: "-36.5005"; }
        ListElement{ radius: "55"; angle: "220"; value: "-39.9611"; }
        ListElement{ radius: "55"; angle: "225"; value: "-43.1771"; }
        ListElement{ radius: "55"; angle: "230"; value: "-46.1239"; }
        ListElement{ radius: "55"; angle: "235"; value: "-48.7793"; }
        ListElement{ radius: "55"; angle: "240"; value: "-51.123"; }
        ListElement{ radius: "55"; angle: "245"; value: "-53.1371"; }
        ListElement{ radius: "55"; angle: "250"; value: "-54.8064"; }
        ListElement{ radius: "55"; angle: "255"; value: "-56.118"; }
        ListElement{ radius: "55"; angle: "260"; value: "-57.0621"; }
        ListElement{ radius: "55"; angle: "265"; value: "-57.6315"; }
        ListElement{ radius: "55"; angle: "270"; value: "-57.8217"; }
        ListElement{ radius: "55"; angle: "275"; value: "-57.6315"; }
        ListElement{ radius: "55"; angle: "280"; value: "-57.0621"; }
        ListElement{ radius: "55"; angle: "285"; value: "-56.118"; }
        ListElement{ radius: "55"; angle: "290"; value: "-54.8064"; }
        ListElement{ radius: "55"; angle: "295"; value: "-53.1371"; }
        ListElement{ radius: "55"; angle: "300"; value: "-51.123"; }
        ListElement{ radius: "55"; angle: "305"; value: "-48.7793"; }
        ListElement{ radius: "55"; angle: "310"; value: "-46.1239"; }
        ListElement{ radius: "55"; angle: "315"; value: "-43.1771"; }
        ListElement{ radius: "55"; angle: "320"; value: "-39.9611"; }
        ListElement{ radius: "55"; angle: "325"; value: "-36.5005"; }
        ListElement{ radius: "55"; angle: "330"; value: "-32.8217"; }
        ListElement{ radius: "55"; angle: "335"; value: "-28.9526"; }
        ListElement{ radius: "55"; angle: "340"; value: "-24.9227"; }
        ListElement{ radius: "55"; angle: "345"; value: "-20.7627"; }
        ListElement{ radius: "55"; angle: "350"; value: "-16.5041"; }
        ListElement{ radius: "55"; angle: "355"; value: "-12.1795"; }
        ListElement{ radius: "55"; angle: "360"; value: "-7.82172"; }
        ListElement{ radius: "60"; angle: "0"; value: "-15.4508"; }
        ListElement{ radius: "60"; angle: "5"; value: "-11.0931"; }
        ListElement{ radius: "60"; angle: "10"; value: "-6.76844"; }
        ListElement{ radius: "60"; angle: "15"; value: "-2.5099"; }
        ListElement{ radius: "60"; angle: "20"; value: "1.65016"; }
        ListElement{ radius: "60"; angle: "25"; value: "5.68006"; }
        ListElement{ radius: "60"; angle: "30"; value: "9.54915"; }
        ListElement{ radius: "60"; angle: "35"; value: "13.228"; }
        ListElement{ radius: "60"; angle: "40"; value: "16.6885"; }
        ListElement{ radius: "60"; angle: "45"; value: "19.9045"; }
        ListElement{ radius: "60"; angle: "50"; value: "22.8514"; }
        ListElement{ radius: "60"; angle: "55"; value: "25.5068"; }
        ListElement{ radius: "60"; angle: "60"; value: "27.8504"; }
        ListElement{ radius: "60"; angle: "65"; value: "29.8645"; }
        ListElement{ radius: "60"; angle: "70"; value: "31.5338"; }
        ListElement{ radius: "60"; angle: "75"; value: "32.8454"; }
        ListElement{ radius: "60"; angle: "80"; value: "33.7895"; }
        ListElement{ radius: "60"; angle: "85"; value: "34.3589"; }
        ListElement{ radius: "60"; angle: "90"; value: "34.5492"; }
        ListElement{ radius: "60"; angle: "95"; value: "34.3589"; }
        ListElement{ radius: "60"; angle: "100"; value: "33.7895"; }
        ListElement{ radius: "60"; angle: "105"; value: "32.8454"; }
        ListElement{ radius: "60"; angle: "110"; value: "31.5338"; }
        ListElement{ radius: "60"; angle: "115"; value: "29.8645"; }
        ListElement{ radius: "60"; angle: "120"; value: "27.8504"; }
        ListElement{ radius: "60"; angle: "125"; value: "25.5068"; }
        ListElement{ radius: "60"; angle: "130"; value: "22.8514"; }
        ListElement{ radius: "60"; angle: "135"; value: "19.9045"; }
        ListElement{ radius: "60"; angle: "140"; value: "16.6885"; }
        ListElement{ radius: "60"; angle: "145"; value: "13.228"; }
        ListElement{ radius: "60"; angle: "150"; value: "9.54915"; }
        ListElement{ radius: "60"; angle: "155"; value: "5.68006"; }
        ListElement{ radius: "60"; angle: "160"; value: "1.65016"; }
        ListElement{ radius: "60"; angle: "165"; value: "-2.5099"; }
        ListElement{ radius: "60"; angle: "170"; value: "-6.76844"; }
        ListElement{ radius: "60"; angle: "175"; value: "-11.0931"; }
        ListElement{ radius: "60"; angle: "180"; value: "-15.4508"; }
        ListElement{ radius: "60"; angle: "185"; value: "-19.8086"; }
        ListElement{ radius: "60"; angle: "190"; value: "-24.1333"; }
        ListElement{ radius: "60"; angle: "195"; value: "-28.3918"; }
        ListElement{ radius: "60"; angle: "200"; value: "-32.5519"; }
        ListElement{ radius: "60"; angle: "205"; value: "-36.5818"; }
        ListElement{ radius: "60"; angle: "210"; value: "-40.4508"; }
        ListElement{ radius: "60"; angle: "215"; value: "-44.1297"; }
        ListElement{ radius: "60"; angle: "220"; value: "-47.5902"; }
        ListElement{ radius: "60"; angle: "225"; value: "-50.8062"; }
        ListElement{ radius: "60"; angle: "230"; value: "-53.7531"; }
        ListElement{ radius: "60"; angle: "235"; value: "-56.4085"; }
        ListElement{ radius: "60"; angle: "240"; value: "-58.7521"; }
        ListElement{ radius: "60"; angle: "245"; value: "-60.7662"; }
        ListElement{ radius: "60"; angle: "250"; value: "-62.4355"; }
        ListElement{ radius: "60"; angle: "255"; value: "-63.7471"; }
        ListElement{ radius: "60"; angle: "260"; value: "-64.6912"; }
        ListElement{ radius: "60"; angle: "265"; value: "-65.2606"; }
        ListElement{ radius: "60"; angle: "270"; value: "-65.4508"; }
        ListElement{ radius: "60"; angle: "275"; value: "-65.2606"; }
        ListElement{ radius: "60"; angle: "280"; value: "-64.6912"; }
        ListElement{ radius: "60"; angle: "285"; value: "-63.7471"; }
        ListElement{ radius: "60"; angle: "290"; value: "-62.4355"; }
        ListElement{ radius: "60"; angle: "295"; value: "-60.7662"; }
        ListElement{ radius: "60"; angle: "300"; value: "-58.7521"; }
        ListElement{ radius: "60"; angle: "305"; value: "-56.4085"; }
        ListElement{ radius: "60"; angle: "310"; value: "-53.7531"; }
        ListElement{ radius: "60"; angle: "315"; value: "-50.8062"; }
        ListElement{ radius: "60"; angle: "320"; value: "-47.5902"; }
        ListElement{ radius: "60"; angle: "325"; value: "-44.1297"; }
        ListElement{ radius: "60"; angle: "330"; value: "-40.4508"; }
        ListElement{ radius: "60"; angle: "335"; value: "-36.5818"; }
        ListElement{ radius: "60"; angle: "340"; value: "-32.5519"; }
        ListElement{ radius: "60"; angle: "345"; value: "-28.3918"; }
        ListElement{ radius: "60"; angle: "350"; value: "-24.1333"; }
        ListElement{ radius: "60"; angle: "355"; value: "-19.8086"; }
        ListElement{ radius: "60"; angle: "360"; value: "-15.4508"; }
        ListElement{ radius: "65"; angle: "0"; value: "-22.6995"; }
        ListElement{ radius: "65"; angle: "5"; value: "-18.3417"; }
        ListElement{ radius: "65"; angle: "10"; value: "-14.0171"; }
        ListElement{ radius: "65"; angle: "15"; value: "-9.75857"; }
        ListElement{ radius: "65"; angle: "20"; value: "-5.59852"; }
        ListElement{ radius: "65"; angle: "25"; value: "-1.56861"; }
        ListElement{ radius: "65"; angle: "30"; value: "2.30048"; }
        ListElement{ radius: "65"; angle: "35"; value: "5.9793"; }
        ListElement{ radius: "65"; angle: "40"; value: "9.43986"; }
        ListElement{ radius: "65"; angle: "45"; value: "12.6558"; }
        ListElement{ radius: "65"; angle: "50"; value: "15.6027"; }
        ListElement{ radius: "65"; angle: "55"; value: "18.2581"; }
        ListElement{ radius: "65"; angle: "60"; value: "20.6017"; }
        ListElement{ radius: "65"; angle: "65"; value: "22.6159"; }
        ListElement{ radius: "65"; angle: "70"; value: "24.2851"; }
        ListElement{ radius: "65"; angle: "75"; value: "25.5968"; }
        ListElement{ radius: "65"; angle: "80"; value: "26.5409"; }
        ListElement{ radius: "65"; angle: "85"; value: "27.1102"; }
        ListElement{ radius: "65"; angle: "90"; value: "27.3005"; }
        ListElement{ radius: "65"; angle: "95"; value: "27.1102"; }
        ListElement{ radius: "65"; angle: "100"; value: "26.5409"; }
        ListElement{ radius: "65"; angle: "105"; value: "25.5968"; }
        ListElement{ radius: "65"; angle: "110"; value: "24.2851"; }
        ListElement{ radius: "65"; angle: "115"; value: "22.6159"; }
        ListElement{ radius: "65"; angle: "120"; value: "20.6017"; }
        ListElement{ radius: "65"; angle: "125"; value: "18.2581"; }
        ListElement{ radius: "65"; angle: "130"; value: "15.6027"; }
        ListElement{ radius: "65"; angle: "135"; value: "12.6558"; }
        ListElement{ radius: "65"; angle: "140"; value: "9.43986"; }
        ListElement{ radius: "65"; angle: "145"; value: "5.9793"; }
        ListElement{ radius: "65"; angle: "150"; value: "2.30048"; }
        ListElement{ radius: "65"; angle: "155"; value: "-1.56861"; }
        ListElement{ radius: "65"; angle: "160"; value: "-5.59852"; }
        ListElement{ radius: "65"; angle: "165"; value: "-9.75857"; }
        ListElement{ radius: "65"; angle: "170"; value: "-14.0171"; }
        ListElement{ radius: "65"; angle: "175"; value: "-18.3417"; }
        ListElement{ radius: "65"; angle: "180"; value: "-22.6995"; }
        ListElement{ radius: "65"; angle: "185"; value: "-27.0573"; }
        ListElement{ radius: "65"; angle: "190"; value: "-31.3819"; }
        ListElement{ radius: "65"; angle: "195"; value: "-35.6405"; }
        ListElement{ radius: "65"; angle: "200"; value: "-39.8005"; }
        ListElement{ radius: "65"; angle: "205"; value: "-43.8304"; }
        ListElement{ radius: "65"; angle: "210"; value: "-47.6995"; }
        ListElement{ radius: "65"; angle: "215"; value: "-51.3783"; }
        ListElement{ radius: "65"; angle: "220"; value: "-54.8389"; }
        ListElement{ radius: "65"; angle: "225"; value: "-58.0549"; }
        ListElement{ radius: "65"; angle: "230"; value: "-61.0017"; }
        ListElement{ radius: "65"; angle: "235"; value: "-63.6571"; }
        ListElement{ radius: "65"; angle: "240"; value: "-66.0008"; }
        ListElement{ radius: "65"; angle: "245"; value: "-68.0149"; }
        ListElement{ radius: "65"; angle: "250"; value: "-69.6842"; }
        ListElement{ radius: "65"; angle: "255"; value: "-70.9958"; }
        ListElement{ radius: "65"; angle: "260"; value: "-71.9399"; }
        ListElement{ radius: "65"; angle: "265"; value: "-72.5093"; }
        ListElement{ radius: "65"; angle: "270"; value: "-72.6995"; }
        ListElement{ radius: "65"; angle: "275"; value: "-72.5093"; }
        ListElement{ radius: "65"; angle: "280"; value: "-71.9399"; }
        ListElement{ radius: "65"; angle: "285"; value: "-70.9958"; }
        ListElement{ radius: "65"; angle: "290"; value: "-69.6842"; }
        ListElement{ radius: "65"; angle: "295"; value: "-68.0149"; }
        ListElement{ radius: "65"; angle: "300"; value: "-66.0008"; }
        ListElement{ radius: "65"; angle: "305"; value: "-63.6571"; }
        ListElement{ radius: "65"; angle: "310"; value: "-61.0017"; }
        ListElement{ radius: "65"; angle: "315"; value: "-58.0549"; }
        ListElement{ radius: "65"; angle: "320"; value: "-54.8389"; }
        ListElement{ radius: "65"; angle: "325"; value: "-51.3783"; }
        ListElement{ radius: "65"; angle: "330"; value: "-47.6995"; }
        ListElement{ radius: "65"; angle: "335"; value: "-43.8304"; }
        ListElement{ radius: "65"; angle: "340"; value: "-39.8005"; }
        ListElement{ radius: "65"; angle: "345"; value: "-35.6405"; }
        ListElement{ radius: "65"; angle: "350"; value: "-31.3819"; }
        ListElement{ radius: "65"; angle: "355"; value: "-27.0573"; }
        ListElement{ radius: "65"; angle: "360"; value: "-22.6995"; }
        ListElement{ radius: "70"; angle: "0"; value: "-29.3893"; }
        ListElement{ radius: "70"; angle: "5"; value: "-25.0315"; }
        ListElement{ radius: "70"; angle: "10"; value: "-20.7069"; }
        ListElement{ radius: "70"; angle: "15"; value: "-16.4483"; }
        ListElement{ radius: "70"; angle: "20"; value: "-12.2883"; }
        ListElement{ radius: "70"; angle: "25"; value: "-8.25835"; }
        ListElement{ radius: "70"; angle: "30"; value: "-4.38926"; }
        ListElement{ radius: "70"; angle: "35"; value: "-0.710441"; }
        ListElement{ radius: "70"; angle: "40"; value: "2.75012"; }
        ListElement{ radius: "70"; angle: "45"; value: "5.96608"; }
        ListElement{ radius: "70"; angle: "50"; value: "8.91296"; }
        ListElement{ radius: "70"; angle: "55"; value: "11.5683"; }
        ListElement{ radius: "70"; angle: "60"; value: "13.912"; }
        ListElement{ radius: "70"; angle: "65"; value: "15.9261"; }
        ListElement{ radius: "70"; angle: "70"; value: "17.5954"; }
        ListElement{ radius: "70"; angle: "75"; value: "18.907"; }
        ListElement{ radius: "70"; angle: "80"; value: "19.8511"; }
        ListElement{ radius: "70"; angle: "85"; value: "20.4205"; }
        ListElement{ radius: "70"; angle: "90"; value: "20.6107"; }
        ListElement{ radius: "70"; angle: "95"; value: "20.4205"; }
        ListElement{ radius: "70"; angle: "100"; value: "19.8511"; }
        ListElement{ radius: "70"; angle: "105"; value: "18.907"; }
        ListElement{ radius: "70"; angle: "110"; value: "17.5954"; }
        ListElement{ radius: "70"; angle: "115"; value: "15.9261"; }
        ListElement{ radius: "70"; angle: "120"; value: "13.912"; }
        ListElement{ radius: "70"; angle: "125"; value: "11.5683"; }
        ListElement{ radius: "70"; angle: "130"; value: "8.91296"; }
        ListElement{ radius: "70"; angle: "135"; value: "5.96608"; }
        ListElement{ radius: "70"; angle: "140"; value: "2.75012"; }
        ListElement{ radius: "70"; angle: "145"; value: "-0.710441"; }
        ListElement{ radius: "70"; angle: "150"; value: "-4.38926"; }
        ListElement{ radius: "70"; angle: "155"; value: "-8.25835"; }
        ListElement{ radius: "70"; angle: "160"; value: "-12.2883"; }
        ListElement{ radius: "70"; angle: "165"; value: "-16.4483"; }
        ListElement{ radius: "70"; angle: "170"; value: "-20.7069"; }
        ListElement{ radius: "70"; angle: "175"; value: "-25.0315"; }
        ListElement{ radius: "70"; angle: "180"; value: "-29.3893"; }
        ListElement{ radius: "70"; angle: "185"; value: "-33.747"; }
        ListElement{ radius: "70"; angle: "190"; value: "-38.0717"; }
        ListElement{ radius: "70"; angle: "195"; value: "-42.3302"; }
        ListElement{ radius: "70"; angle: "200"; value: "-46.4903"; }
        ListElement{ radius: "70"; angle: "205"; value: "-50.5202"; }
        ListElement{ radius: "70"; angle: "210"; value: "-54.3893"; }
        ListElement{ radius: "70"; angle: "215"; value: "-58.0681"; }
        ListElement{ radius: "70"; angle: "220"; value: "-61.5286"; }
        ListElement{ radius: "70"; angle: "225"; value: "-64.7446"; }
        ListElement{ radius: "70"; angle: "230"; value: "-67.6915"; }
        ListElement{ radius: "70"; angle: "235"; value: "-70.3469"; }
        ListElement{ radius: "70"; angle: "240"; value: "-72.6905"; }
        ListElement{ radius: "70"; angle: "245"; value: "-74.7047"; }
        ListElement{ radius: "70"; angle: "250"; value: "-76.3739"; }
        ListElement{ radius: "70"; angle: "255"; value: "-77.6856"; }
        ListElement{ radius: "70"; angle: "260"; value: "-78.6297"; }
        ListElement{ radius: "70"; angle: "265"; value: "-79.199"; }
        ListElement{ radius: "70"; angle: "270"; value: "-79.3893"; }
        ListElement{ radius: "70"; angle: "275"; value: "-79.199"; }
        ListElement{ radius: "70"; angle: "280"; value: "-78.6297"; }
        ListElement{ radius: "70"; angle: "285"; value: "-77.6856"; }
        ListElement{ radius: "70"; angle: "290"; value: "-76.3739"; }
        ListElement{ radius: "70"; angle: "295"; value: "-74.7047"; }
        ListElement{ radius: "70"; angle: "300"; value: "-72.6905"; }
        ListElement{ radius: "70"; angle: "305"; value: "-70.3469"; }
        ListElement{ radius: "70"; angle: "310"; value: "-67.6915"; }
        ListElement{ radius: "70"; angle: "315"; value: "-64.7446"; }
        ListElement{ radius: "70"; angle: "320"; value: "-61.5286"; }
        ListElement{ radius: "70"; angle: "325"; value: "-58.0681"; }
        ListElement{ radius: "70"; angle: "330"; value: "-54.3893"; }
        ListElement{ radius: "70"; angle: "335"; value: "-50.5202"; }
        ListElement{ radius: "70"; angle: "340"; value: "-46.4903"; }
        ListElement{ radius: "70"; angle: "345"; value: "-42.3302"; }
        ListElement{ radius: "70"; angle: "350"; value: "-38.0717"; }
        ListElement{ radius: "70"; angle: "355"; value: "-33.747"; }
        ListElement{ radius: "70"; angle: "360"; value: "-29.3893"; }
        ListElement{ radius: "75"; angle: "0"; value: "-35.3553"; }
        ListElement{ radius: "75"; angle: "5"; value: "-30.9976"; }
        ListElement{ radius: "75"; angle: "10"; value: "-26.6729"; }
        ListElement{ radius: "75"; angle: "15"; value: "-22.4144"; }
        ListElement{ radius: "75"; angle: "20"; value: "-18.2543"; }
        ListElement{ radius: "75"; angle: "25"; value: "-14.2244"; }
        ListElement{ radius: "75"; angle: "30"; value: "-10.3553"; }
        ListElement{ radius: "75"; angle: "35"; value: "-6.67652"; }
        ListElement{ radius: "75"; angle: "40"; value: "-3.21596"; }
        ListElement{ radius: "75"; angle: "45"; value: "5.55112e-15"; }
        ListElement{ radius: "75"; angle: "50"; value: "2.94688"; }
        ListElement{ radius: "75"; angle: "55"; value: "5.60226"; }
        ListElement{ radius: "75"; angle: "60"; value: "7.94593"; }
        ListElement{ radius: "75"; angle: "65"; value: "9.96005"; }
        ListElement{ radius: "75"; angle: "70"; value: "11.6293"; }
        ListElement{ radius: "75"; angle: "75"; value: "12.941"; }
        ListElement{ radius: "75"; angle: "80"; value: "13.885"; }
        ListElement{ radius: "75"; angle: "85"; value: "14.4544"; }
        ListElement{ radius: "75"; angle: "90"; value: "14.6447"; }
        ListElement{ radius: "75"; angle: "95"; value: "14.4544"; }
        ListElement{ radius: "75"; angle: "100"; value: "13.885"; }
        ListElement{ radius: "75"; angle: "105"; value: "12.941"; }
        ListElement{ radius: "75"; angle: "110"; value: "11.6293"; }
        ListElement{ radius: "75"; angle: "115"; value: "9.96005"; }
        ListElement{ radius: "75"; angle: "120"; value: "7.94593"; }
        ListElement{ radius: "75"; angle: "125"; value: "5.60226"; }
        ListElement{ radius: "75"; angle: "130"; value: "2.94688"; }
        ListElement{ radius: "75"; angle: "135"; value: "5.55112e-15"; }
        ListElement{ radius: "75"; angle: "140"; value: "-3.21596"; }
        ListElement{ radius: "75"; angle: "145"; value: "-6.67652"; }
        ListElement{ radius: "75"; angle: "150"; value: "-10.3553"; }
        ListElement{ radius: "75"; angle: "155"; value: "-14.2244"; }
        ListElement{ radius: "75"; angle: "160"; value: "-18.2543"; }
        ListElement{ radius: "75"; angle: "165"; value: "-22.4144"; }
        ListElement{ radius: "75"; angle: "170"; value: "-26.6729"; }
        ListElement{ radius: "75"; angle: "175"; value: "-30.9976"; }
        ListElement{ radius: "75"; angle: "180"; value: "-35.3553"; }
        ListElement{ radius: "75"; angle: "185"; value: "-39.7131"; }
        ListElement{ radius: "75"; angle: "190"; value: "-44.0377"; }
        ListElement{ radius: "75"; angle: "195"; value: "-48.2963"; }
        ListElement{ radius: "75"; angle: "200"; value: "-52.4563"; }
        ListElement{ radius: "75"; angle: "205"; value: "-56.4863"; }
        ListElement{ radius: "75"; angle: "210"; value: "-60.3553"; }
        ListElement{ radius: "75"; angle: "215"; value: "-64.0342"; }
        ListElement{ radius: "75"; angle: "220"; value: "-67.4947"; }
        ListElement{ radius: "75"; angle: "225"; value: "-70.7107"; }
        ListElement{ radius: "75"; angle: "230"; value: "-73.6576"; }
        ListElement{ radius: "75"; angle: "235"; value: "-76.3129"; }
        ListElement{ radius: "75"; angle: "240"; value: "-78.6566"; }
        ListElement{ radius: "75"; angle: "245"; value: "-80.6707"; }
        ListElement{ radius: "75"; angle: "250"; value: "-82.34"; }
        ListElement{ radius: "75"; angle: "255"; value: "-83.6516"; }
        ListElement{ radius: "75"; angle: "260"; value: "-84.5957"; }
        ListElement{ radius: "75"; angle: "265"; value: "-85.1651"; }
        ListElement{ radius: "75"; angle: "270"; value: "-85.3553"; }
        ListElement{ radius: "75"; angle: "275"; value: "-85.1651"; }
        ListElement{ radius: "75"; angle: "280"; value: "-84.5957"; }
        ListElement{ radius: "75"; angle: "285"; value: "-83.6516"; }
        ListElement{ radius: "75"; angle: "290"; value: "-82.34"; }
        ListElement{ radius: "75"; angle: "295"; value: "-80.6707"; }
        ListElement{ radius: "75"; angle: "300"; value: "-78.6566"; }
        ListElement{ radius: "75"; angle: "305"; value: "-76.3129"; }
        ListElement{ radius: "75"; angle: "310"; value: "-73.6576"; }
        ListElement{ radius: "75"; angle: "315"; value: "-70.7107"; }
        ListElement{ radius: "75"; angle: "320"; value: "-67.4947"; }
        ListElement{ radius: "75"; angle: "325"; value: "-64.0342"; }
        ListElement{ radius: "75"; angle: "330"; value: "-60.3553"; }
        ListElement{ radius: "75"; angle: "335"; value: "-56.4863"; }
        ListElement{ radius: "75"; angle: "340"; value: "-52.4563"; }
        ListElement{ radius: "75"; angle: "345"; value: "-48.2963"; }
        ListElement{ radius: "75"; angle: "350"; value: "-44.0377"; }
        ListElement{ radius: "75"; angle: "355"; value: "-39.7131"; }
        ListElement{ radius: "75"; angle: "360"; value: "-35.3553"; }
        ListElement{ radius: "80"; angle: "0"; value: "-40.4508"; }
        ListElement{ radius: "80"; angle: "5"; value: "-36.0931"; }
        ListElement{ radius: "80"; angle: "10"; value: "-31.7684"; }
        ListElement{ radius: "80"; angle: "15"; value: "-27.5099"; }
        ListElement{ radius: "80"; angle: "20"; value: "-23.3498"; }
        ListElement{ radius: "80"; angle: "25"; value: "-19.3199"; }
        ListElement{ radius: "80"; angle: "30"; value: "-15.4508"; }
        ListElement{ radius: "80"; angle: "35"; value: "-11.772"; }
        ListElement{ radius: "80"; angle: "40"; value: "-8.31147"; }
        ListElement{ radius: "80"; angle: "45"; value: "-5.09551"; }
        ListElement{ radius: "80"; angle: "50"; value: "-2.14863"; }
        ListElement{ radius: "80"; angle: "55"; value: "0.506752"; }
        ListElement{ radius: "80"; angle: "60"; value: "2.85042"; }
        ListElement{ radius: "80"; angle: "65"; value: "4.86454"; }
        ListElement{ radius: "80"; angle: "70"; value: "6.53378"; }
        ListElement{ radius: "80"; angle: "75"; value: "7.84544"; }
        ListElement{ radius: "80"; angle: "80"; value: "8.78954"; }
        ListElement{ radius: "80"; angle: "85"; value: "9.35889"; }
        ListElement{ radius: "80"; angle: "90"; value: "9.54915"; }
        ListElement{ radius: "80"; angle: "95"; value: "9.35889"; }
        ListElement{ radius: "80"; angle: "100"; value: "8.78954"; }
        ListElement{ radius: "80"; angle: "105"; value: "7.84544"; }
        ListElement{ radius: "80"; angle: "110"; value: "6.53378"; }
        ListElement{ radius: "80"; angle: "115"; value: "4.86454"; }
        ListElement{ radius: "80"; angle: "120"; value: "2.85042"; }
        ListElement{ radius: "80"; angle: "125"; value: "0.506752"; }
        ListElement{ radius: "80"; angle: "130"; value: "-2.14863"; }
        ListElement{ radius: "80"; angle: "135"; value: "-5.09551"; }
        ListElement{ radius: "80"; angle: "140"; value: "-8.31147"; }
        ListElement{ radius: "80"; angle: "145"; value: "-11.772"; }
        ListElement{ radius: "80"; angle: "150"; value: "-15.4508"; }
        ListElement{ radius: "80"; angle: "155"; value: "-19.3199"; }
        ListElement{ radius: "80"; angle: "160"; value: "-23.3498"; }
        ListElement{ radius: "80"; angle: "165"; value: "-27.5099"; }
        ListElement{ radius: "80"; angle: "170"; value: "-31.7684"; }
        ListElement{ radius: "80"; angle: "175"; value: "-36.0931"; }
        ListElement{ radius: "80"; angle: "180"; value: "-40.4508"; }
        ListElement{ radius: "80"; angle: "185"; value: "-44.8086"; }
        ListElement{ radius: "80"; angle: "190"; value: "-49.1333"; }
        ListElement{ radius: "80"; angle: "195"; value: "-53.3918"; }
        ListElement{ radius: "80"; angle: "200"; value: "-57.5519"; }
        ListElement{ radius: "80"; angle: "205"; value: "-61.5818"; }
        ListElement{ radius: "80"; angle: "210"; value: "-65.4508"; }
        ListElement{ radius: "80"; angle: "215"; value: "-69.1297"; }
        ListElement{ radius: "80"; angle: "220"; value: "-72.5902"; }
        ListElement{ radius: "80"; angle: "225"; value: "-75.8062"; }
        ListElement{ radius: "80"; angle: "230"; value: "-78.7531"; }
        ListElement{ radius: "80"; angle: "235"; value: "-81.4085"; }
        ListElement{ radius: "80"; angle: "240"; value: "-83.7521"; }
        ListElement{ radius: "80"; angle: "245"; value: "-85.7662"; }
        ListElement{ radius: "80"; angle: "250"; value: "-87.4355"; }
        ListElement{ radius: "80"; angle: "255"; value: "-88.7471"; }
        ListElement{ radius: "80"; angle: "260"; value: "-89.6912"; }
        ListElement{ radius: "80"; angle: "265"; value: "-90.2606"; }
        ListElement{ radius: "80"; angle: "270"; value: "-90.4508"; }
        ListElement{ radius: "80"; angle: "275"; value: "-90.2606"; }
        ListElement{ radius: "80"; angle: "280"; value: "-89.6912"; }
        ListElement{ radius: "80"; angle: "285"; value: "-88.7471"; }
        ListElement{ radius: "80"; angle: "290"; value: "-87.4355"; }
        ListElement{ radius: "80"; angle: "295"; value: "-85.7662"; }
        ListElement{ radius: "80"; angle: "300"; value: "-83.7521"; }
        ListElement{ radius: "80"; angle: "305"; value: "-81.4085"; }
        ListElement{ radius: "80"; angle: "310"; value: "-78.7531"; }
        ListElement{ radius: "80"; angle: "315"; value: "-75.8062"; }
        ListElement{ radius: "80"; angle: "320"; value: "-72.5902"; }
        ListElement{ radius: "80"; angle: "325"; value: "-69.1297"; }
        ListElement{ radius: "80"; angle: "330"; value: "-65.4508"; }
        ListElement{ radius: "80"; angle: "335"; value: "-61.5818"; }
        ListElement{ radius: "80"; angle: "340"; value: "-57.5519"; }
        ListElement{ radius: "80"; angle: "345"; value: "-53.3918"; }
        ListElement{ radius: "80"; angle: "350"; value: "-49.1333"; }
        ListElement{ radius: "80"; angle: "355"; value: "-44.8086"; }
        ListElement{ radius: "80"; angle: "360"; value: "-40.4508"; }
        ListElement{ radius: "85"; angle: "0"; value: "-44.5503"; }
        ListElement{ radius: "85"; angle: "5"; value: "-40.1925"; }
        ListElement{ radius: "85"; angle: "10"; value: "-35.8679"; }
        ListElement{ radius: "85"; angle: "15"; value: "-31.6094"; }
        ListElement{ radius: "85"; angle: "20"; value: "-27.4493"; }
        ListElement{ radius: "85"; angle: "25"; value: "-23.4194"; }
        ListElement{ radius: "85"; angle: "30"; value: "-19.5503"; }
        ListElement{ radius: "85"; angle: "35"; value: "-15.8715"; }
        ListElement{ radius: "85"; angle: "40"; value: "-12.4109"; }
        ListElement{ radius: "85"; angle: "45"; value: "-9.19499"; }
        ListElement{ radius: "85"; angle: "50"; value: "-6.2481"; }
        ListElement{ radius: "85"; angle: "55"; value: "-3.59272"; }
        ListElement{ radius: "85"; angle: "60"; value: "-1.24906"; }
        ListElement{ radius: "85"; angle: "65"; value: "0.765063"; }
        ListElement{ radius: "85"; angle: "70"; value: "2.4343"; }
        ListElement{ radius: "85"; angle: "75"; value: "3.74597"; }
        ListElement{ radius: "85"; angle: "80"; value: "4.69006"; }
        ListElement{ radius: "85"; angle: "85"; value: "5.25941"; }
        ListElement{ radius: "85"; angle: "90"; value: "5.44967"; }
        ListElement{ radius: "85"; angle: "95"; value: "5.25941"; }
        ListElement{ radius: "85"; angle: "100"; value: "4.69006"; }
        ListElement{ radius: "85"; angle: "105"; value: "3.74597"; }
        ListElement{ radius: "85"; angle: "110"; value: "2.4343"; }
        ListElement{ radius: "85"; angle: "115"; value: "0.765063"; }
        ListElement{ radius: "85"; angle: "120"; value: "-1.24906"; }
        ListElement{ radius: "85"; angle: "125"; value: "-3.59272"; }
        ListElement{ radius: "85"; angle: "130"; value: "-6.2481"; }
        ListElement{ radius: "85"; angle: "135"; value: "-9.19499"; }
        ListElement{ radius: "85"; angle: "140"; value: "-12.4109"; }
        ListElement{ radius: "85"; angle: "145"; value: "-15.8715"; }
        ListElement{ radius: "85"; angle: "150"; value: "-19.5503"; }
        ListElement{ radius: "85"; angle: "155"; value: "-23.4194"; }
        ListElement{ radius: "85"; angle: "160"; value: "-27.4493"; }
        ListElement{ radius: "85"; angle: "165"; value: "-31.6094"; }
        ListElement{ radius: "85"; angle: "170"; value: "-35.8679"; }
        ListElement{ radius: "85"; angle: "175"; value: "-40.1925"; }
        ListElement{ radius: "85"; angle: "180"; value: "-44.5503"; }
        ListElement{ radius: "85"; angle: "185"; value: "-48.9081"; }
        ListElement{ radius: "85"; angle: "190"; value: "-53.2327"; }
        ListElement{ radius: "85"; angle: "195"; value: "-57.4913"; }
        ListElement{ radius: "85"; angle: "200"; value: "-61.6513"; }
        ListElement{ radius: "85"; angle: "205"; value: "-65.6812"; }
        ListElement{ radius: "85"; angle: "210"; value: "-69.5503"; }
        ListElement{ radius: "85"; angle: "215"; value: "-73.2291"; }
        ListElement{ radius: "85"; angle: "220"; value: "-76.6897"; }
        ListElement{ radius: "85"; angle: "225"; value: "-79.9057"; }
        ListElement{ radius: "85"; angle: "230"; value: "-82.8525"; }
        ListElement{ radius: "85"; angle: "235"; value: "-85.5079"; }
        ListElement{ radius: "85"; angle: "240"; value: "-87.8516"; }
        ListElement{ radius: "85"; angle: "245"; value: "-89.8657"; }
        ListElement{ radius: "85"; angle: "250"; value: "-91.535"; }
        ListElement{ radius: "85"; angle: "255"; value: "-92.8466"; }
        ListElement{ radius: "85"; angle: "260"; value: "-93.7907"; }
        ListElement{ radius: "85"; angle: "265"; value: "-94.3601"; }
        ListElement{ radius: "85"; angle: "270"; value: "-94.5503"; }
        ListElement{ radius: "85"; angle: "275"; value: "-94.3601"; }
        ListElement{ radius: "85"; angle: "280"; value: "-93.7907"; }
        ListElement{ radius: "85"; angle: "285"; value: "-92.8466"; }
        ListElement{ radius: "85"; angle: "290"; value: "-91.535"; }
        ListElement{ radius: "85"; angle: "295"; value: "-89.8657"; }
        ListElement{ radius: "85"; angle: "300"; value: "-87.8516"; }
        ListElement{ radius: "85"; angle: "305"; value: "-85.5079"; }
        ListElement{ radius: "85"; angle: "310"; value: "-82.8525"; }
        ListElement{ radius: "85"; angle: "315"; value: "-79.9057"; }
        ListElement{ radius: "85"; angle: "320"; value: "-76.6897"; }
        ListElement{ radius: "85"; angle: "325"; value: "-73.2291"; }
        ListElement{ radius: "85"; angle: "330"; value: "-69.5503"; }
        ListElement{ radius: "85"; angle: "335"; value: "-65.6812"; }
        ListElement{ radius: "85"; angle: "340"; value: "-61.6513"; }
        ListElement{ radius: "85"; angle: "345"; value: "-57.4913"; }
        ListElement{ radius: "85"; angle: "350"; value: "-53.2327"; }
        ListElement{ radius: "85"; angle: "355"; value: "-48.9081"; }
        ListElement{ radius: "85"; angle: "360"; value: "-44.5503"; }
        ListElement{ radius: "90"; angle: "0"; value: "-47.5528"; }
        ListElement{ radius: "90"; angle: "5"; value: "-43.195"; }
        ListElement{ radius: "90"; angle: "10"; value: "-38.8704"; }
        ListElement{ radius: "90"; angle: "15"; value: "-34.6119"; }
        ListElement{ radius: "90"; angle: "20"; value: "-30.4518"; }
        ListElement{ radius: "90"; angle: "25"; value: "-26.4219"; }
        ListElement{ radius: "90"; angle: "30"; value: "-22.5528"; }
        ListElement{ radius: "90"; angle: "35"; value: "-18.874"; }
        ListElement{ radius: "90"; angle: "40"; value: "-15.4134"; }
        ListElement{ radius: "90"; angle: "45"; value: "-12.1975"; }
        ListElement{ radius: "90"; angle: "50"; value: "-9.2506"; }
        ListElement{ radius: "90"; angle: "55"; value: "-6.59522"; }
        ListElement{ radius: "90"; angle: "60"; value: "-4.25156"; }
        ListElement{ radius: "90"; angle: "65"; value: "-2.23744"; }
        ListElement{ radius: "90"; angle: "70"; value: "-0.568195"; }
        ListElement{ radius: "90"; angle: "75"; value: "0.743465"; }
        ListElement{ radius: "90"; angle: "80"; value: "1.68756"; }
        ListElement{ radius: "90"; angle: "85"; value: "2.25691"; }
        ListElement{ radius: "90"; angle: "90"; value: "2.44717"; }
        ListElement{ radius: "90"; angle: "95"; value: "2.25691"; }
        ListElement{ radius: "90"; angle: "100"; value: "1.68756"; }
        ListElement{ radius: "90"; angle: "105"; value: "0.743465"; }
        ListElement{ radius: "90"; angle: "110"; value: "-0.568195"; }
        ListElement{ radius: "90"; angle: "115"; value: "-2.23744"; }
        ListElement{ radius: "90"; angle: "120"; value: "-4.25156"; }
        ListElement{ radius: "90"; angle: "125"; value: "-6.59522"; }
        ListElement{ radius: "90"; angle: "130"; value: "-9.2506"; }
        ListElement{ radius: "90"; angle: "135"; value: "-12.1975"; }
        ListElement{ radius: "90"; angle: "140"; value: "-15.4134"; }
        ListElement{ radius: "90"; angle: "145"; value: "-18.874"; }
        ListElement{ radius: "90"; angle: "150"; value: "-22.5528"; }
        ListElement{ radius: "90"; angle: "155"; value: "-26.4219"; }
        ListElement{ radius: "90"; angle: "160"; value: "-30.4518"; }
        ListElement{ radius: "90"; angle: "165"; value: "-34.6119"; }
        ListElement{ radius: "90"; angle: "170"; value: "-38.8704"; }
        ListElement{ radius: "90"; angle: "175"; value: "-43.195"; }
        ListElement{ radius: "90"; angle: "180"; value: "-47.5528"; }
        ListElement{ radius: "90"; angle: "185"; value: "-51.9106"; }
        ListElement{ radius: "90"; angle: "190"; value: "-56.2352"; }
        ListElement{ radius: "90"; angle: "195"; value: "-60.4938"; }
        ListElement{ radius: "90"; angle: "200"; value: "-64.6538"; }
        ListElement{ radius: "90"; angle: "205"; value: "-68.6837"; }
        ListElement{ radius: "90"; angle: "210"; value: "-72.5528"; }
        ListElement{ radius: "90"; angle: "215"; value: "-76.2316"; }
        ListElement{ radius: "90"; angle: "220"; value: "-79.6922"; }
        ListElement{ radius: "90"; angle: "225"; value: "-82.9082"; }
        ListElement{ radius: "90"; angle: "230"; value: "-85.855"; }
        ListElement{ radius: "90"; angle: "235"; value: "-88.5104"; }
        ListElement{ radius: "90"; angle: "240"; value: "-90.8541"; }
        ListElement{ radius: "90"; angle: "245"; value: "-92.8682"; }
        ListElement{ radius: "90"; angle: "250"; value: "-94.5375"; }
        ListElement{ radius: "90"; angle: "255"; value: "-95.8491"; }
        ListElement{ radius: "90"; angle: "260"; value: "-96.7932"; }
        ListElement{ radius: "90"; angle: "265"; value: "-97.3626"; }
        ListElement{ radius: "90"; angle: "270"; value: "-97.5528"; }
        ListElement{ radius: "90"; angle: "275"; value: "-97.3626"; }
        ListElement{ radius: "90"; angle: "280"; value: "-96.7932"; }
        ListElement{ radius: "90"; angle: "285"; value: "-95.8491"; }
        ListElement{ radius: "90"; angle: "290"; value: "-94.5375"; }
        ListElement{ radius: "90"; angle: "295"; value: "-92.8682"; }
        ListElement{ radius: "90"; angle: "300"; value: "-90.8541"; }
        ListElement{ radius: "90"; angle: "305"; value: "-88.5104"; }
        ListElement{ radius: "90"; angle: "310"; value: "-85.855"; }
        ListElement{ radius: "90"; angle: "315"; value: "-82.9082"; }
        ListElement{ radius: "90"; angle: "320"; value: "-79.6922"; }
        ListElement{ radius: "90"; angle: "325"; value: "-76.2316"; }
        ListElement{ radius: "90"; angle: "330"; value: "-72.5528"; }
        ListElement{ radius: "90"; angle: "335"; value: "-68.6837"; }
        ListElement{ radius: "90"; angle: "340"; value: "-64.6538"; }
        ListElement{ radius: "90"; angle: "345"; value: "-60.4938"; }
        ListElement{ radius: "90"; angle: "350"; value: "-56.2352"; }
        ListElement{ radius: "90"; angle: "355"; value: "-51.9106"; }
        ListElement{ radius: "90"; angle: "360"; value: "-47.5528"; }
        ListElement{ radius: "95"; angle: "0"; value: "-49.3844"; }
        ListElement{ radius: "95"; angle: "5"; value: "-45.0266"; }
        ListElement{ radius: "95"; angle: "10"; value: "-40.702"; }
        ListElement{ radius: "95"; angle: "15"; value: "-36.4435"; }
        ListElement{ radius: "95"; angle: "20"; value: "-32.2834"; }
        ListElement{ radius: "95"; angle: "25"; value: "-28.2535"; }
        ListElement{ radius: "95"; angle: "30"; value: "-24.3844"; }
        ListElement{ radius: "95"; angle: "35"; value: "-20.7056"; }
        ListElement{ radius: "95"; angle: "40"; value: "-17.245"; }
        ListElement{ radius: "95"; angle: "45"; value: "-14.0291"; }
        ListElement{ radius: "95"; angle: "50"; value: "-11.0822"; }
        ListElement{ radius: "95"; angle: "55"; value: "-8.42681"; }
        ListElement{ radius: "95"; angle: "60"; value: "-6.08315"; }
        ListElement{ radius: "95"; angle: "65"; value: "-4.06903"; }
        ListElement{ radius: "95"; angle: "70"; value: "-2.39979"; }
        ListElement{ radius: "95"; angle: "75"; value: "-1.08813"; }
        ListElement{ radius: "95"; angle: "80"; value: "-0.144029"; }
        ListElement{ radius: "95"; angle: "85"; value: "0.425318"; }
        ListElement{ radius: "95"; angle: "90"; value: "0.615583"; }
        ListElement{ radius: "95"; angle: "95"; value: "0.425318"; }
        ListElement{ radius: "95"; angle: "100"; value: "-0.144029"; }
        ListElement{ radius: "95"; angle: "105"; value: "-1.08813"; }
        ListElement{ radius: "95"; angle: "110"; value: "-2.39979"; }
        ListElement{ radius: "95"; angle: "115"; value: "-4.06903"; }
        ListElement{ radius: "95"; angle: "120"; value: "-6.08315"; }
        ListElement{ radius: "95"; angle: "125"; value: "-8.42681"; }
        ListElement{ radius: "95"; angle: "130"; value: "-11.0822"; }
        ListElement{ radius: "95"; angle: "135"; value: "-14.0291"; }
        ListElement{ radius: "95"; angle: "140"; value: "-17.245"; }
        ListElement{ radius: "95"; angle: "145"; value: "-20.7056"; }
        ListElement{ radius: "95"; angle: "150"; value: "-24.3844"; }
        ListElement{ radius: "95"; angle: "155"; value: "-28.2535"; }
        ListElement{ radius: "95"; angle: "160"; value: "-32.2834"; }
        ListElement{ radius: "95"; angle: "165"; value: "-36.4435"; }
        ListElement{ radius: "95"; angle: "170"; value: "-40.702"; }
        ListElement{ radius: "95"; angle: "175"; value: "-45.0266"; }
        ListElement{ radius: "95"; angle: "180"; value: "-49.3844"; }
        ListElement{ radius: "95"; angle: "185"; value: "-53.7422"; }
        ListElement{ radius: "95"; angle: "190"; value: "-58.0668"; }
        ListElement{ radius: "95"; angle: "195"; value: "-62.3254"; }
        ListElement{ radius: "95"; angle: "200"; value: "-66.4854"; }
        ListElement{ radius: "95"; angle: "205"; value: "-70.5153"; }
        ListElement{ radius: "95"; angle: "210"; value: "-74.3844"; }
        ListElement{ radius: "95"; angle: "215"; value: "-78.0632"; }
        ListElement{ radius: "95"; angle: "220"; value: "-81.5238"; }
        ListElement{ radius: "95"; angle: "225"; value: "-84.7398"; }
        ListElement{ radius: "95"; angle: "230"; value: "-87.6866"; }
        ListElement{ radius: "95"; angle: "235"; value: "-90.342"; }
        ListElement{ radius: "95"; angle: "240"; value: "-92.6857"; }
        ListElement{ radius: "95"; angle: "245"; value: "-94.6998"; }
        ListElement{ radius: "95"; angle: "250"; value: "-96.369"; }
        ListElement{ radius: "95"; angle: "255"; value: "-97.6807"; }
        ListElement{ radius: "95"; angle: "260"; value: "-98.6248"; }
        ListElement{ radius: "95"; angle: "265"; value: "-99.1942"; }
        ListElement{ radius: "95"; angle: "270"; value: "-99.3844"; }
        ListElement{ radius: "95"; angle: "275"; value: "-99.1942"; }
        ListElement{ radius: "95"; angle: "280"; value: "-98.6248"; }
        ListElement{ radius: "95"; angle: "285"; value: "-97.6807"; }
        ListElement{ radius: "95"; angle: "290"; value: "-96.369"; }
        ListElement{ radius: "95"; angle: "295"; value: "-94.6998"; }
        ListElement{ radius: "95"; angle: "300"; value: "-92.6857"; }
        ListElement{ radius: "95"; angle: "305"; value: "-90.342"; }
        ListElement{ radius: "95"; angle: "310"; value: "-87.6866"; }
        ListElement{ radius: "95"; angle: "315"; value: "-84.7398"; }
        ListElement{ radius: "95"; angle: "320"; value: "-81.5238"; }
        ListElement{ radius: "95"; angle: "325"; value: "-78.0632"; }
        ListElement{ radius: "95"; angle: "330"; value: "-74.3844"; }
        ListElement{ radius: "95"; angle: "335"; value: "-70.5153"; }
        ListElement{ radius: "95"; angle: "340"; value: "-66.4854"; }
        ListElement{ radius: "95"; angle: "345"; value: "-62.3254"; }
        ListElement{ radius: "95"; angle: "350"; value: "-58.0668"; }
        ListElement{ radius: "95"; angle: "355"; value: "-53.7422"; }
        ListElement{ radius: "95"; angle: "360"; value: "-49.3844"; }
        ListElement{ radius: "100"; angle: "0"; value: "-50"; }
        ListElement{ radius: "100"; angle: "5"; value: "-45.6422"; }
        ListElement{ radius: "100"; angle: "10"; value: "-41.3176"; }
        ListElement{ radius: "100"; angle: "15"; value: "-37.059"; }
        ListElement{ radius: "100"; angle: "20"; value: "-32.899"; }
        ListElement{ radius: "100"; angle: "25"; value: "-28.8691"; }
        ListElement{ radius: "100"; angle: "30"; value: "-25"; }
        ListElement{ radius: "100"; angle: "35"; value: "-21.3212"; }
        ListElement{ radius: "100"; angle: "40"; value: "-17.8606"; }
        ListElement{ radius: "100"; angle: "45"; value: "-14.6447"; }
        ListElement{ radius: "100"; angle: "50"; value: "-11.6978"; }
        ListElement{ radius: "100"; angle: "55"; value: "-9.0424"; }
        ListElement{ radius: "100"; angle: "60"; value: "-6.69873"; }
        ListElement{ radius: "100"; angle: "65"; value: "-4.68461"; }
        ListElement{ radius: "100"; angle: "70"; value: "-3.01537"; }
        ListElement{ radius: "100"; angle: "75"; value: "-1.70371"; }
        ListElement{ radius: "100"; angle: "80"; value: "-0.759612"; }
        ListElement{ radius: "100"; angle: "85"; value: "-0.190265"; }
        ListElement{ radius: "100"; angle: "90"; value: "0"; }
        ListElement{ radius: "100"; angle: "95"; value: "-0.190265"; }
        ListElement{ radius: "100"; angle: "100"; value: "-0.759612"; }
        ListElement{ radius: "100"; angle: "105"; value: "-1.70371"; }
        ListElement{ radius: "100"; angle: "110"; value: "-3.01537"; }
        ListElement{ radius: "100"; angle: "115"; value: "-4.68461"; }
        ListElement{ radius: "100"; angle: "120"; value: "-6.69873"; }
        ListElement{ radius: "100"; angle: "125"; value: "-9.0424"; }
        ListElement{ radius: "100"; angle: "130"; value: "-11.6978"; }
        ListElement{ radius: "100"; angle: "135"; value: "-14.6447"; }
        ListElement{ radius: "100"; angle: "140"; value: "-17.8606"; }
        ListElement{ radius: "100"; angle: "145"; value: "-21.3212"; }
        ListElement{ radius: "100"; angle: "150"; value: "-25"; }
        ListElement{ radius: "100"; angle: "155"; value: "-28.8691"; }
        ListElement{ radius: "100"; angle: "160"; value: "-32.899"; }
        ListElement{ radius: "100"; angle: "165"; value: "-37.059"; }
        ListElement{ radius: "100"; angle: "170"; value: "-41.3176"; }
        ListElement{ radius: "100"; angle: "175"; value: "-45.6422"; }
        ListElement{ radius: "100"; angle: "180"; value: "-50"; }
        ListElement{ radius: "100"; angle: "185"; value: "-54.3578"; }
        ListElement{ radius: "100"; angle: "190"; value: "-58.6824"; }
        ListElement{ radius: "100"; angle: "195"; value: "-62.941"; }
        ListElement{ radius: "100"; angle: "200"; value: "-67.101"; }
        ListElement{ radius: "100"; angle: "205"; value: "-71.1309"; }
        ListElement{ radius: "100"; angle: "210"; value: "-75"; }
        ListElement{ radius: "100"; angle: "215"; value: "-78.6788"; }
        ListElement{ radius: "100"; angle: "220"; value: "-82.1394"; }
        ListElement{ radius: "100"; angle: "225"; value: "-85.3553"; }
        ListElement{ radius: "100"; angle: "230"; value: "-88.3022"; }
        ListElement{ radius: "100"; angle: "235"; value: "-90.9576"; }
        ListElement{ radius: "100"; angle: "240"; value: "-93.3013"; }
        ListElement{ radius: "100"; angle: "245"; value: "-95.3154"; }
        ListElement{ radius: "100"; angle: "250"; value: "-96.9846"; }
        ListElement{ radius: "100"; angle: "255"; value: "-98.2963"; }
        ListElement{ radius: "100"; angle: "260"; value: "-99.2404"; }
        ListElement{ radius: "100"; angle: "265"; value: "-99.8097"; }
        ListElement{ radius: "100"; angle: "270"; value: "-100"; }
        ListElement{ radius: "100"; angle: "275"; value: "-99.8097"; }
        ListElement{ radius: "100"; angle: "280"; value: "-99.2404"; }
        ListElement{ radius: "100"; angle: "285"; value: "-98.2963"; }
        ListElement{ radius: "100"; angle: "290"; value: "-96.9846"; }
        ListElement{ radius: "100"; angle: "295"; value: "-95.3154"; }
        ListElement{ radius: "100"; angle: "300"; value: "-93.3013"; }
        ListElement{ radius: "100"; angle: "305"; value: "-90.9576"; }
        ListElement{ radius: "100"; angle: "310"; value: "-88.3022"; }
        ListElement{ radius: "100"; angle: "315"; value: "-85.3553"; }
        ListElement{ radius: "100"; angle: "320"; value: "-82.1394"; }
        ListElement{ radius: "100"; angle: "325"; value: "-78.6788"; }
        ListElement{ radius: "100"; angle: "330"; value: "-75"; }
        ListElement{ radius: "100"; angle: "335"; value: "-71.1309"; }
        ListElement{ radius: "100"; angle: "340"; value: "-67.101"; }
        ListElement{ radius: "100"; angle: "345"; value: "-62.941"; }
        ListElement{ radius: "100"; angle: "350"; value: "-58.6824"; }
        ListElement{ radius: "100"; angle: "355"; value: "-54.3578"; }
        ListElement{ radius: "100"; angle: "360"; value: "-50"; }
    }
}
// Copyright (C) 2023 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause

import QtQuick
import QtQuick.Controls
import QtDataVisualization

Rectangle {
    id: heightMapView
    color: surfacePlot.theme.windowColor

    required property bool portraitMode

    property real buttonWidth: heightMapView.portraitMode ? (heightMapView.width - 35) / 2
                                                          : (heightMapView.width - 40) / 3

    Item {
        id: surfaceView
        anchors.top: buttons.bottom
        anchors.bottom: heightMapView.bottom
        anchors.left: heightMapView.left
        anchors.right: heightMapView.right

        //! [1]
        ColorGradient {
            id: surfaceGradient
            ColorGradientStop { position: 0.0; color: "darkgreen"}
            ColorGradientStop { position: 0.15; color: "darkslategray" }
            ColorGradientStop { position: 0.7; color: "peru" }
            ColorGradientStop { position: 1.0; color: "white" }
        }
        //! [1]

        Surface3D {
            id: surfacePlot
            width: surfaceView.width
            height: surfaceView.height
            aspectRatio: 3.0
            //! [2]
            theme: Theme3D {
                type: Theme3D.ThemeStoneMoss
                font.family: "STCaiyun"
                font.pointSize: 35
                colorStyle: Theme3D.ColorStyleRangeGradient
                baseGradients: [surfaceGradient] // Use the custom gradient
            }
            //! [2]
            shadowQuality: AbstractGraph3D.ShadowQualityMedium
            selectionMode: AbstractGraph3D.SelectionSlice | AbstractGraph3D.SelectionItemAndRow
            scene.activeCamera.cameraPreset: Camera3D.CameraPresetIsometricLeft
            axisX.segmentCount: 3
            axisX.subSegmentCount: 3
            axisX.labelFormat: "%i"
            axisZ.segmentCount: 3
            axisZ.subSegmentCount: 3
            axisZ.labelFormat: "%i"
            axisY.segmentCount: 2
            axisY.subSegmentCount: 2
            axisY.labelFormat: "%i"
            axisY.title: "Height (m)"
            axisX.title: "Longitude 175.x\"E"
            axisZ.title: "Latitude -39.x\"N"
            axisY.titleVisible: true
            axisX.titleVisible: true
            axisZ.titleVisible: true

            //! [0]
            Surface3DSeries {
                id: heightSeries
                flatShadingEnabled: false
                drawMode: Surface3DSeries.DrawSurface

                HeightMapSurfaceDataProxy {
                    heightMapFile: ":/qml/qmlsurfacegallery/heightmap.png"
                    // We don't want the default data values set by heightmap proxy, but use
                    // actual coordinate and height values instead
                    autoScaleY: true
                    minYValue: 740
                    maxYValue: 2787
                    minZValue: -374 // ~ -39.374411"N
                    maxZValue: -116 // ~ -39.115971"N
                    minXValue: 472  // ~ 175.471767"E
                    maxXValue: 781  // ~ 175.780758"E
                }

                onDrawModeChanged: heightMapView.checkState()
            }
            //! [0]
        }
    }

    Item {
        id: buttons
        anchors.top: parent.top
        anchors.left: parent.left
        anchors.right: parent.right
        anchors.margins: 10
        height: heightMapView.portraitMode ? surfaceGridToggle.implicitHeight * 3 + 20
                                           : surfaceGridToggle.implicitHeight * 2 + 15
        opacity: 0.5

        Button {
            id: surfaceGridToggle
            anchors.margins: 5
            anchors.left: parent.left
            anchors.top: parent.top
            width: heightMapView.buttonWidth // Calculated elsewhere based on screen orientation
            text: "Show Surface\nGrid"
            //! [3]
            onClicked: {
                if (heightSeries.drawMode & Surface3DSeries.DrawWireframe)
                    heightSeries.drawMode &= ~Surface3DSeries.DrawWireframe;
                else
                    heightSeries.drawMode |= Surface3DSeries.DrawWireframe;
            }
            //! [3]
        }

        Button {
            id: surfaceGridColor
            anchors.margins: 5
            anchors.left: surfaceGridToggle.right
            anchors.top: parent.top
            width: heightMapView.buttonWidth
            text: "Red surface\ngrid color"
            //! [4]
            onClicked: {
                if (Qt.colorEqual(heightSeries.wireframeColor, "#000000")) {
                    heightSeries.wireframeColor = "red";
                    text = "Black surface\ngrid color";
                } else {
                    heightSeries.wireframeColor = "black";
                    text = "Red surface\ngrid color";
                }
            }
            //! [4]
        }

        Button {
            id: surfaceToggle
            anchors.margins: 5
            anchors.left: heightMapView.portraitMode ? parent.left : surfaceGridColor.right
            anchors.top: heightMapView.portraitMode ? surfaceGridColor.bottom : parent.top
            width: heightMapView.buttonWidth
            text: "Hide\nSurface"
            //! [5]
            onClicked: {
                if (heightSeries.drawMode & Surface3DSeries.DrawSurface)
                    heightSeries.drawMode &= ~Surface3DSeries.DrawSurface;
                else
                    heightSeries.drawMode |= Surface3DSeries.DrawSurface;
            }
            //! [5]
        }

        Button {
            id: flatShadingToggle
            anchors.margins: 5
            anchors.left: heightMapView.portraitMode ? surfaceToggle.right : parent.left
            anchors.top: heightMapView.portraitMode ? surfaceGridColor.bottom : surfaceToggle.bottom
            width: heightMapView.buttonWidth
            text: heightSeries.flatShadingSupported ? "Show\nFlat" : "Flat not\nsupported"
            enabled: heightSeries.flatShadingSupported
            //! [6]
            onClicked: {
                if (heightSeries.flatShadingEnabled) {
                    heightSeries.flatShadingEnabled = false;
                    text = "Show\nFlat"
                } else {
                    heightSeries.flatShadingEnabled = true;
                    text = "Show\nSmooth"
                }
            }
            //! [6]
        }

        Button {
            id: backgroundToggle
            anchors.margins: 5
            anchors.left: heightMapView.portraitMode ? parent.left : flatShadingToggle.right
            anchors.top: heightMapView.portraitMode ? flatShadingToggle.bottom
                                                    : surfaceToggle.bottom
            width: heightMapView.buttonWidth
            text: "Hide\nBackground"
            onClicked: {
                if (surfacePlot.theme.backgroundEnabled) {
                    surfacePlot.theme.backgroundEnabled = false;
                    text = "Show\nBackground";
                } else {
                    surfacePlot.theme.backgroundEnabled = true;
                    text = "Hide\nBackground";
                }
            }
        }

        Button {
            id: gridToggle
            anchors.margins: 5
            anchors.left: backgroundToggle.right
            anchors.top: heightMapView.portraitMode ? flatShadingToggle.bottom
                                                    : surfaceToggle.bottom
            width: heightMapView.buttonWidth
            text: "Hide\nGrid"
            onClicked: {
                if (surfacePlot.theme.gridEnabled) {
                    surfacePlot.theme.gridEnabled = false;
                    text = "Show\nGrid";
                } else {
                    surfacePlot.theme.gridEnabled = true;
                    text = "Hide\nGrid";
                }
            }
        }
    }

    function checkState() {
        if (heightSeries.drawMode & Surface3DSeries.DrawSurface)
            surfaceToggle.text = "Hide\nSurface";
        else
            surfaceToggle.text = "Show\nSurface";

        if (heightSeries.drawMode & Surface3DSeries.DrawWireframe)
            surfaceGridToggle.text = "Hide Surface\nGrid";
        else
            surfaceGridToggle.text = "Show Surface\nGrid";
    }
}
// Copyright (C) 2023 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause

import QtQuick
import QtQuick.Controls
import QtDataVisualization
//! [0]
import SurfaceGallery
//! [0]

Item {
    id: oscilloscopeView

    property int sampleColumns: sampleSlider.value
    property int sampleRows: sampleColumns / 2
    property int sampleCache: 24

    required property bool portraitMode

    property real controlWidth: oscilloscopeView.portraitMode ? oscilloscopeView.width - 10
                                                              : oscilloscopeView.width / 4 - 6.66

    property real buttonWidth: oscilloscopeView.portraitMode ? oscilloscopeView.width - 10
                                                             : oscilloscopeView.width / 3 - 7.5

    onSampleRowsChanged: {
        surfaceSeries.selectedPoint = surfaceSeries.invalidSelectionPosition
        generateData()
    }

    //![1]
    DataSource {
        id: dataSource
    }
    //![1]

    Item {
        id: dataView
        anchors.bottom: parent.bottom
        width: parent.width
        height: parent.height - controlArea.height

        //! [2]
        Surface3D {
            id: surfaceGraph
            anchors.fill: parent

            Surface3DSeries {
                id: surfaceSeries
                drawMode: Surface3DSeries.DrawSurfaceAndWireframe
                itemLabelFormat: "@xLabel, @zLabel: @yLabel"
                //! [2]
                //! [3]
                itemLabelVisible: false
                //! [3]

                //! [4]
                onItemLabelChanged: {
                    if (surfaceSeries.selectedPoint == surfaceSeries.invalidSelectionPosition)
                        selectionText.text = "No selection";
                    else
                        selectionText.text = surfaceSeries.itemLabel;
                }
                //! [4]
            }

            shadowQuality: AbstractGraph3D.ShadowQualityNone
            selectionMode: AbstractGraph3D.SelectionSlice | AbstractGraph3D.SelectionItemAndColumn
            theme: Theme3D {
                type: Theme3D.ThemeIsabelle
                backgroundEnabled: false
            }
            scene.activeCamera.cameraPreset: Camera3D.CameraPresetFrontHigh

            axisX.labelFormat: "%d ms"
            axisY.labelFormat: "%d W"
            axisZ.labelFormat: "%d mV"
            axisX.min: 0
            axisY.min: 0
            axisZ.min: 0
            axisX.max: 1000
            axisY.max: 100
            axisZ.max: 800
            axisX.segmentCount: 4
            axisY.segmentCount: 4
            axisZ.segmentCount: 4
            measureFps: true
            renderingMode: AbstractGraph3D.RenderDirectToBackground

            onCurrentFpsChanged: (fps)=> {
                                     if (fps > 10)
                                     fpsText.text = "FPS: " + Math.round(surfaceGraph.currentFps);
                                     else
                                     fpsText.text = "FPS: " + Math.round(surfaceGraph.currentFps * 10.0) / 10.0;
                                 }

            //! [5]
            Component.onCompleted: oscilloscopeView.generateData();
            //! [5]
        }
    }

    //! [7]
    Timer {
        id: refreshTimer
        interval: 1000 / frequencySlider.value
        running: true
        repeat: true
        onTriggered: dataSource.update(surfaceSeries);
    }
    //! [7]

    Rectangle {
        id: controlArea
        height: oscilloscopeView.portraitMode ? flatShadingToggle.implicitHeight * 7
                                              : flatShadingToggle.implicitHeight * 2
        anchors.left: parent.left
        anchors.top: parent.top
        anchors.right: parent.right
        color: surfaceGraph.theme.backgroundColor

        // Samples
        Rectangle {
            id: samples
            width: oscilloscopeView.controlWidth
            height: flatShadingToggle.implicitHeight
            anchors.left: parent.left
            anchors.top: parent.top
            anchors.margins: 5

            color: surfaceGraph.theme.windowColor
            border.color: surfaceGraph.theme.gridLineColor
            border.width: 1
            radius: 4

            Row {
                anchors.centerIn: parent
                spacing: 10
                padding: 5

                Slider {
                    id: sampleSlider
                    from: oscilloscopeView.sampleCache * 2
                    to: from * 10
                    stepSize: oscilloscopeView.sampleCache

                    background: Rectangle {
                        x: sampleSlider.leftPadding
                        y: sampleSlider.topPadding + sampleSlider.availableHeight / 2
                           - height / 2
                        implicitWidth: 200
                        implicitHeight: 4
                        width: sampleSlider.availableWidth
                        height: implicitHeight
                        radius: 2
                        color: surfaceGraph.theme.gridLineColor

                        Rectangle {
                            width: sampleSlider.visualPosition * parent.width
                            height: parent.height
                            color: surfaceGraph.theme.labelTextColor
                            radius: 2
                        }
                    }

                    handle: Rectangle {
                        x: sampleSlider.leftPadding + sampleSlider.visualPosition
                           * (sampleSlider.availableWidth - width)
                        y: sampleSlider.topPadding + sampleSlider.availableHeight / 2
                           - height / 2
                        implicitWidth: 20
                        implicitHeight: 20
                        radius: 10
                        color: sampleSlider.pressed ? surfaceGraph.theme.gridLineColor
                                                    : surfaceGraph.theme.windowColor
                        border.color: sampleSlider.pressed ? surfaceGraph.theme.labelTextColor
                                                           : surfaceGraph.theme.gridLineColor
                    }

                    Component.onCompleted: value = from;
                }

                Text {
                    id: samplesText
                    text: "Samples: " + (oscilloscopeView.sampleRows * oscilloscopeView.sampleColumns)
                    verticalAlignment: Text.AlignVCenter
                    horizontalAlignment: Text.AlignHCenter
                    color: surfaceGraph.theme.labelTextColor
                }
            }
        }

        // Frequency
        Rectangle {
            id: frequency
            width: oscilloscopeView.controlWidth
            height: flatShadingToggle.implicitHeight
            anchors.left: oscilloscopeView.portraitMode ? parent.left : samples.right
            anchors.top: oscilloscopeView.portraitMode ? samples.bottom : parent.top
            anchors.margins: 5

            color: surfaceGraph.theme.windowColor
            border.color: surfaceGraph.theme.gridLineColor
            border.width: 1
            radius: 4

            Row {
                anchors.centerIn: parent
                spacing: 10
                padding: 5

                Slider {
                    id: frequencySlider
                    from: 2
                    to: 60
                    stepSize: 2
                    value: 30

                    background: Rectangle {
                        x: frequencySlider.leftPadding
                        y: frequencySlider.topPadding + frequencySlider.availableHeight / 2
                           - height / 2
                        implicitWidth: 200
                        implicitHeight: 4
                        width: frequencySlider.availableWidth
                        height: implicitHeight
                        radius: 2
                        color: surfaceGraph.theme.gridLineColor

                        Rectangle {
                            width: frequencySlider.visualPosition * parent.width
                            height: parent.height
                            color: surfaceGraph.theme.labelTextColor
                            radius: 2
                        }
                    }

                    handle: Rectangle {
                        x: frequencySlider.leftPadding + frequencySlider.visualPosition
                           * (frequencySlider.availableWidth - width)
                        y: frequencySlider.topPadding + frequencySlider.availableHeight / 2
                           - height / 2
                        implicitWidth: 20
                        implicitHeight: 20
                        radius: 10
                        color: frequencySlider.pressed ? surfaceGraph.theme.gridLineColor
                                                       : surfaceGraph.theme.windowColor
                        border.color: frequencySlider.pressed ? surfaceGraph.theme.labelTextColor
                                                              : surfaceGraph.theme.gridLineColor
                    }
                }

                Text {
                    id: frequencyText
                    text: "Freq: " + frequencySlider.value + " Hz"
                    verticalAlignment: Text.AlignVCenter
                    horizontalAlignment: Text.AlignHCenter
                    color: surfaceGraph.theme.labelTextColor
                }
            }
        }

        // FPS
        Rectangle {
            id: fpsindicator
            width: oscilloscopeView.controlWidth
            height: flatShadingToggle.implicitHeight
            anchors.left: oscilloscopeView.portraitMode ? parent.left : frequency.right
            anchors.top: oscilloscopeView.portraitMode ? frequency.bottom : parent.top
            anchors.margins: 5

            color: surfaceGraph.theme.windowColor
            border.color: surfaceGraph.theme.gridLineColor
            border.width: 1
            radius: 4

            Text {
                id: fpsText
                anchors.fill: parent
                verticalAlignment: Text.AlignVCenter
                horizontalAlignment: Text.AlignHCenter
                color: surfaceGraph.theme.labelTextColor
            }
        }

        // Selection
        Rectangle {
            id: selection
            width: oscilloscopeView.controlWidth
            height: flatShadingToggle.implicitHeight
            anchors.left: oscilloscopeView.portraitMode ? parent.left : fpsindicator.right
            anchors.top: oscilloscopeView.portraitMode ? fpsindicator.bottom : parent.top
            anchors.margins: 5

            color: surfaceGraph.theme.windowColor
            border.color: surfaceGraph.theme.gridLineColor
            border.width: 1
            radius: 4

            Text {
                id: selectionText
                anchors.fill: parent
                verticalAlignment: Text.AlignVCenter
                horizontalAlignment: Text.AlignHCenter
                text: "No selection"
                color: surfaceGraph.theme.labelTextColor
            }
        }

        // Flat shading
        Button {
            id: flatShadingToggle
            width: oscilloscopeView.buttonWidth
            anchors.left: parent.left
            anchors.top: selection.bottom
            anchors.margins: 5

            text: surfaceSeries.flatShadingSupported ? "Show\nSmooth" : "Flat\nnot supported"
            enabled: surfaceSeries.flatShadingSupported

            onClicked: {
                if (surfaceSeries.flatShadingEnabled) {
                    surfaceSeries.flatShadingEnabled = false;
                    text = "Show\nFlat"
                } else {
                    surfaceSeries.flatShadingEnabled = true;
                    text = "Show\nSmooth"
                }
            }

            contentItem: Text {
                text: flatShadingToggle.text
                opacity: flatShadingToggle.enabled ? 1.0 : 0.3
                color: surfaceGraph.theme.labelTextColor
                horizontalAlignment: Text.AlignHCenter
                verticalAlignment: Text.AlignVCenter
                elide: Text.ElideRight
            }

            background: Rectangle {
                opacity: flatShadingToggle.enabled ? 1 : 0.3
                color: flatShadingToggle.down ? surfaceGraph.theme.gridLineColor
                                              : surfaceGraph.theme.windowColor
                border.color: flatShadingToggle.down ? surfaceGraph.theme.labelTextColor
                                                     : surfaceGraph.theme.gridLineColor
                border.width: 1
                radius: 2
            }
        }

        // Surface grid
        Button {
            id: surfaceGridToggle
            width: oscilloscopeView.buttonWidth
            anchors.left: oscilloscopeView.portraitMode ? parent.left : flatShadingToggle.right
            anchors.top: oscilloscopeView.portraitMode ? flatShadingToggle.bottom : selection.bottom
            anchors.margins: 5

            text: "Hide\nSurface Grid"

            onClicked: {
                if (surfaceSeries.drawMode & Surface3DSeries.DrawWireframe) {
                    surfaceSeries.drawMode &= ~Surface3DSeries.DrawWireframe;
                    text = "Show\nSurface Grid";
                } else {
                    surfaceSeries.drawMode |= Surface3DSeries.DrawWireframe;
                    text = "Hid\nSurface Grid";
                }
            }

            contentItem: Text {
                text: surfaceGridToggle.text
                color: surfaceGraph.theme.labelTextColor
                horizontalAlignment: Text.AlignHCenter
                verticalAlignment: Text.AlignVCenter
                elide: Text.ElideRight
            }

            background: Rectangle {
                color: surfaceGridToggle.down ? surfaceGraph.theme.gridLineColor
                                              : surfaceGraph.theme.windowColor
                border.color: surfaceGridToggle.down ? surfaceGraph.theme.labelTextColor
                                                     : surfaceGraph.theme.gridLineColor
                border.width: 1
                radius: 2
            }
        }

        // Exit
        Button {
            id: exitButton
            width: oscilloscopeView.buttonWidth
            height: surfaceGridToggle.height
            anchors.left: oscilloscopeView.portraitMode ? parent.left : surfaceGridToggle.right
            anchors.top: oscilloscopeView.portraitMode ? surfaceGridToggle.bottom : selection.bottom
            anchors.margins: 5

            text: "Quit"

            onClicked: Qt.quit();

            contentItem: Text {
                text: exitButton.text
                color: surfaceGraph.theme.labelTextColor
                horizontalAlignment: Text.AlignHCenter
                verticalAlignment: Text.AlignVCenter
                elide: Text.ElideRight
            }

            background: Rectangle {
                color: exitButton.down ? surfaceGraph.theme.gridLineColor
                                       : surfaceGraph.theme.windowColor
                border.color: exitButton.down ? surfaceGraph.theme.labelTextColor
                                              : surfaceGraph.theme.gridLineColor
                border.width: 1
                radius: 2
            }
        }
    }

    //! [6]
    function generateData() {
        dataSource.generateData(oscilloscopeView.sampleCache, oscilloscopeView.sampleRows,
                                oscilloscopeView.sampleColumns,
                                surfaceGraph.axisX.min, surfaceGraph.axisX.max,
                                surfaceGraph.axisY.min, surfaceGraph.axisY.max,
                                surfaceGraph.axisZ.min, surfaceGraph.axisZ.max);
    }
    //! [6]
}
// Copyright (C) 2023 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause

import QtQuick
import QtQuick.Controls
import QtDataVisualization

Rectangle {
    id: spectrogramView
    color: surfaceGraph.theme.windowColor

    required property bool portraitMode

    property real buttonWidth: spectrogramView.portraitMode ? (spectrogramView.width - 35) / 2
                                                            : (spectrogramView.width - 50) / 5

    SpectrogramData {
        id: surfaceData
    }

    Item {
        id: surfaceView
        anchors.top: buttons.bottom
        anchors.left: parent.left
        anchors.right: legend.left
        anchors.bottom: parent.bottom

        ColorGradient {
            id: surfaceGradient
            ColorGradientStop { position: 0.0; color: "black" }
            ColorGradientStop { position: 0.2; color: "red" }
            ColorGradientStop { position: 0.5; color: "blue" }
            ColorGradientStop { position: 0.8; color: "yellow" }
            ColorGradientStop { position: 1.0; color: "white" }
        }

        ValueAxis3D {
            id: xAxis
            segmentCount: 8
            labelFormat: "%i\u00B0"
            title: "Angle"
            titleVisible: true
            titleFixed: false
        }

        ValueAxis3D {
            id: yAxis
            segmentCount: 8
            labelFormat: "%i \%"
            title: "Value"
            titleVisible: true
            labelAutoRotation: 0
            titleFixed: false
        }

        ValueAxis3D {
            id: zAxis
            segmentCount: 5
            labelFormat: "%i nm"
            title: "Radius"
            titleVisible: true
            titleFixed: false
        }

        Theme3D {
            id: customTheme
            type: Theme3D.ThemeQt
            // Don't show specular spotlight as we don't want it to distort the colors
            lightStrength: 0.0
            ambientLightStrength: 1.0
            backgroundEnabled: false
            gridLineColor: "#AAAAAA"
            windowColor: "#EEEEEE"
        }

        //! [0]
        Surface3D {
            id: surfaceGraph
            anchors.fill: parent

            Surface3DSeries {
                id: surfaceSeries
                flatShadingEnabled: false
                drawMode: Surface3DSeries.DrawSurface
                baseGradient: surfaceGradient
                colorStyle: Theme3D.ColorStyleRangeGradient
                itemLabelFormat: "(@xLabel, @zLabel): @yLabel"

                ItemModelSurfaceDataProxy {
                    itemModel: surfaceData.model
                    rowRole: "radius"
                    columnRole: "angle"
                    yPosRole: "value"
                }
            }
            //! [0]

            //! [1]
            // Remove the perspective and view the graph from top down to achieve 2D effect
            orthoProjection: true
            scene.activeCamera.cameraPreset: Camera3D.CameraPresetDirectlyAbove
            //! [1]

            //! [2]
            flipHorizontalGrid: true
            //! [2]

            //! [4]
            radialLabelOffset: 0.01
            //! [4]

            //! [5]
            inputHandler: TouchInputHandler3D {
                rotationEnabled: !surfaceGraph.orthoProjection
            }
            //! [5]

            theme: customTheme
            shadowQuality: AbstractGraph3D.ShadowQualityNone
            selectionMode: AbstractGraph3D.SelectionSlice | AbstractGraph3D.SelectionItemAndColumn
            axisX: xAxis
            axisY: yAxis
            axisZ: zAxis

            aspectRatio: 1.0
            horizontalAspectRatio: 1.0
            scene.activeCamera.zoomLevel: 140
        }
    }

    Item {
        id: buttons
        anchors.top: parent.top
        anchors.left: parent.left
        anchors.right: parent.right
        height: spectrogramView.portraitMode ? (polarToggle.height + 10) * 3
                                             : polarToggle.height + 30
        anchors.margins: 10

        //! [3]
        Button {
            id: polarToggle
            anchors.margins: 5
            anchors.left: parent.left
            anchors.top: parent.top
            width: spectrogramView.buttonWidth // Calculated elsewhere based on screen orientation
            text: "Switch to\n" + (surfaceGraph.polar ? "cartesian" : "polar")
            onClicked: surfaceGraph.polar = !surfaceGraph.polar;
        }
        //! [3]

        Button {
            id: orthoToggle
            anchors.margins: 5
            anchors.left: polarToggle.right
            anchors.top: parent.top
            width: spectrogramView.buttonWidth
            text: "Switch to\n" + (surfaceGraph.orthoProjection ? "perspective" : "orthographic")
            onClicked: {
                if (surfaceGraph.orthoProjection) {
                    surfaceGraph.orthoProjection = false;
                    xAxis.labelAutoRotation = 30;
                    yAxis.labelAutoRotation = 30;
                    zAxis.labelAutoRotation = 30;
                } else {
                    surfaceGraph.orthoProjection = true;
                    surfaceGraph.scene.activeCamera.cameraPreset
                            = Camera3D.CameraPresetDirectlyAbove;
                    surfaceSeries.drawMode &= ~Surface3DSeries.DrawWireframe;
                    xAxis.labelAutoRotation = 0;
                    yAxis.labelAutoRotation = 0;
                    zAxis.labelAutoRotation = 0;
                }
            }
        }

        Button {
            id: flipGridToggle
            anchors.margins: 5
            anchors.left: spectrogramView.portraitMode ? parent.left : orthoToggle.right
            anchors.top: spectrogramView.portraitMode ? orthoToggle.bottom : parent.top
            width: spectrogramView.buttonWidth
            text: "Toggle axis\ngrid on top"
            onClicked: surfaceGraph.flipHorizontalGrid = !surfaceGraph.flipHorizontalGrid;
        }

        Button {
            id: labelOffsetToggle
            anchors.margins: 5
            anchors.left: flipGridToggle.right
            anchors.top: spectrogramView.portraitMode ? orthoToggle.bottom : parent.top
            width: spectrogramView.buttonWidth
            text: "Toggle radial\nlabel position"
            visible: surfaceGraph.polar
            onClicked: {
                if (surfaceGraph.radialLabelOffset >= 1.0)
                    surfaceGraph.radialLabelOffset = 0.01;
                else
                    surfaceGraph.radialLabelOffset = 1.0;
            }
        }

        Button {
            id: surfaceGridToggle
            anchors.margins: 5
            anchors.left: spectrogramView.portraitMode ? (labelOffsetToggle.visible ? parent.left
                                                                                    : flipGridToggle.right)
                                                       : (labelOffsetToggle.visible ? labelOffsetToggle.right
                                                                                    : flipGridToggle.right)
            anchors.top: spectrogramView.portraitMode ? (labelOffsetToggle.visible ? labelOffsetToggle.bottom
                                                                                   : orthoToggle.bottom)
                                                      : parent.top
            width: spectrogramView.buttonWidth
            text: "Toggle\nsurface grid"
            visible: !surfaceGraph.orthoProjection
            onClicked: {
                if (surfaceSeries.drawMode & Surface3DSeries.DrawWireframe)
                    surfaceSeries.drawMode &= ~Surface3DSeries.DrawWireframe;
                else
                    surfaceSeries.drawMode |= Surface3DSeries.DrawWireframe;
            }
        }
    }

    Item {
        id: legend
        anchors.bottom: parent.bottom
        anchors.top: buttons.bottom
        anchors.right: parent.right
        width: spectrogramView.portraitMode ? 100 : 125

        Rectangle {
            id: gradient
            anchors.margins: 20
            anchors.bottom: legend.bottom
            anchors.top: legend.top
            anchors.right: legend.right
            border.color: "black"
            border.width: 1
            width: spectrogramView.portraitMode ? 25 : 50
            rotation: 180
            gradient: Gradient {
                GradientStop { position: 0.0; color: "black" }
                GradientStop { position: 0.2; color: "red" }
                GradientStop { position: 0.5; color: "blue" }
                GradientStop { position: 0.8; color: "yellow" }
                GradientStop { position: 1.0; color: "white" }
            }
        }

        Text {
            anchors.verticalCenter: gradient.bottom
            anchors.right: gradient.left
            anchors.margins: 2
            text: surfaceGraph.axisY.min  + "%"
        }

        Text {
            anchors.verticalCenter: gradient.verticalCenter
            anchors.right: gradient.left
            anchors.margins: 2
            text: (surfaceGraph.axisY.max + surfaceGraph.axisY.min) / 2  + "%"
        }

        Text {
            anchors.verticalCenter: gradient.top
            anchors.right: gradient.left
            anchors.margins: 2
            text: surfaceGraph.axisY.max + "%"
        }
    }
}
// Copyright (C) 2023 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause

import QtQuick
import QtQuick.Controls
import QtQuick.Layouts

Item {
    id: mainView
    width: 1280
    height: 1024
    visible: true

    property bool portraitMode: width < height

    TabBar {
        id: tabBar
        width: parent.width

        TabButton {
            text: "Height Map"
        }

        TabButton {
            text: "Spectrogram"
        }

        TabButton {
            text: "Oscilloscope"
        }
    }

    StackLayout {
        anchors.top: tabBar.bottom
        anchors.bottom: parent.bottom
        width: parent.width
        currentIndex: tabBar.currentIndex

        SurfaceHeightMap {
            Layout.fillHeight: true
            Layout.fillWidth: true
            portraitMode: mainView.portraitMode
        }

        SurfaceSpectrogram {
            Layout.fillHeight: true
            Layout.fillWidth: true
            portraitMode: mainView.portraitMode
        }

        SurfaceOscilloscope {
            Layout.fillHeight: true
            Layout.fillWidth: true
            portraitMode: mainView.portraitMode
        }
    }
}
Next
Bars 3D Example
Previous
Graph Gallery
Copyright © 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 (https://www.gnu.org/licenses/fdl.html) as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.
Made with Sphinx and @pradyunsg's Furo