This page summarizes new symbology implementation for vector layers which has been added in QGIS v1.4. For an introduction, read the Symbology_RFC page.

So, from QGIS v1.4 there are two symbology implementations that live side-by-side. Vector layers use one of these implementations:
  • new symbology (also called symbology-ng)
  • original symbology (also called old symbology)

In QGIS v2.0 the original symbology should be removed completely in favor of new symbology implementation.

For Users

To start using new symbology, you can open vector layer properties and in Symbology page click New symbology button. The page will change itself appropriately. You can always switch back to original symbology implementation by clicking Old symbology button.

You can tell QGIS to use new symbology by default for all newly loaded layers: open Options dialog and in "Rendering & SVG" page turn on the Use new generation symbology for rendering check box.

Layers with assigned default style or loaded from project file will preserve use the assigned symbology independently from the setting of default symbology implementation. So if you use new symbology by default but open a project file with layers using original symbology, they will be using original symbology (and vice versa).

New symbology uses a recognizes a new concept of application-wide style. A style consists of a set of symbols and color ramps defined by user for faster access to commonly used symbols. There's a Style Manager available from Options menu that allows users to add, edit and remove symbols and color ramps. The style is stored in ~/.qgis/symbology-ng-style.xml file.

For Developers

The API documentation has been moved to the developer cookbook:

http://www.qgis.org/pyqgis-cookbook/vector.html#appearance-symbology-of-vector-layers

TODO

Features that could be added in following releases (there might be already existing tickets in Trac for some of them):
  • change symbol by clicking on it in legend
  • graduated symbol renderer:
    • add class manually
    • classification using size (markers) or width (lines)
  • categorized symbol renderer
    • join categories
    • add only some categories
  • simple fill
    • scaling of brushes
    • custom texture
    • gradients
  • SLD import/export
  • color ramps
    • import/export
    • improvements / discussion : ColorRamps
Labeling:
  • callout labels with lines/bubbles from symbol (#2180)
  • box/shape outlines for labels
  • allow user to build a custom string from fields and static text
  • restore state of layer levels when symbology is loaded from qml