Symbols are created as QPainterPath objects with additional information defining attributes of the path. A QPainterPath is made up of sub paths such as rectangles, ellipses or chains of lines and bezier curves. The paths may intersect each other forming complex shapes.
The symbol may be filled using either the winding option which will fill the entire path, or the odd even option which fill alternate sections of the path.
If the path is not filled, the outline will have a defined line width, end cap type and line join type.
See the QPainterPath documentation for more detail.