QGIS API Documentation  2.99.0-Master (3450a9f)
Classes | Public Types | Public Member Functions | Static Public Member Functions | Static Public Attributes | Protected Member Functions | Static Protected Member Functions | Protected Attributes | Static Protected Attributes | Friends | List of all members
QgsExpression Class Reference

Class for parsing and evaluation of expressions (formerly called "search strings"). More...

#include <qgsexpression.h>

Classes

class  Function
 A abstract base class for defining QgsExpression functions. More...
 
struct  Help
 
struct  HelpArg
 
struct  HelpExample
 
struct  HelpVariant
 
class  NamedNode
 Named node. More...
 
class  Node
 
class  NodeBinaryOperator
 
class  NodeColumnRef
 
class  NodeCondition
 
class  NodeFunction
 
class  NodeInOperator
 
class  NodeList
 
class  NodeLiteral
 
class  NodeUnaryOperator
 
class  Parameter
 Represents a single parameter passed to a function. More...
 
class  StaticFunction
 c++ helper class for defining QgsExpression functions. More...
 
class  WhenThen
 

Public Types

enum  BinaryOperator {
  boOr, boAnd, boEQ, boNE,
  boLE, boGE, boLT, boGT,
  boRegexp, boLike, boNotLike, boILike,
  boNotILike, boIs, boIsNot, boPlus,
  boMinus, boMul, boDiv, boIntDiv,
  boMod, boPow, boConcat
}
 list of binary operators More...
 
typedef QVariant(* FcnEval) (const QVariantList &values, const QgsExpressionContext *context, QgsExpression *parent)
 Function definition for evaluation against an expression context, using a list of values as parameters to the function. More...
 
enum  NodeType {
  ntUnaryOperator, ntBinaryOperator, ntInOperator, ntFunction,
  ntLiteral, ntColumnRef, ntCondition
}
 
typedef QList< ParameterParameterList
 List of parameters, used for function definition. More...
 
enum  SpatialOperator {
  soBbox, soIntersects, soContains, soCrosses,
  soEquals, soDisjoint, soOverlaps, soTouches,
  soWithin
}
 
enum  UnaryOperator { uoNot, uoMinus }
 list of unary operators More...
 
typedef QList< WhenThen * > WhenThenList
 

Public Member Functions

 QgsExpression (const QString &expr)
 Creates a new expression based on the provided string. More...
 
 QgsExpression (const QgsExpression &other)
 Create a copy of this expression. More...
 
 QgsExpression ()
 Create an empty expression. More...
 
 ~QgsExpression ()
 
QgsUnitTypes::AreaUnit areaUnits () const
 Returns the desired areal units for calculations involving geomCalculator(), e.g., "$area". More...
 
QgsUnitTypes::DistanceUnit distanceUnits () const
 Returns the desired distance units for calculations involving geomCalculator(), e.g., "$length" and "$perimeter". More...
 
QString dump () const
 Return an expression string, constructed from the internal abstract syntax tree. More...
 
QString evalErrorString () const
 Returns evaluation error. More...
 
QVariant evaluate ()
 Evaluate the feature and return the result. More...
 
QVariant evaluate (const QgsExpressionContext *context)
 Evaluate the expression against the specified context and return the result. More...
 
QString expression () const
 Return the original, unmodified expression string. More...
 
QgsDistanceAreageomCalculator ()
 Return calculator used for distance and area calculations (used by $length, $area and $perimeter functions only) More...
 
bool hasEvalError () const
 Returns true if an error occurred when evaluating last input. More...
 
bool hasParserError () const
 Returns true if an error occurred when parsing the input expression. More...
 
bool isField () const
 Checks whether an expression consists only of a single field reference. More...
 
bool isValid () const
 Checks if this expression is valid. More...
 
bool needsGeometry () const
 Returns true if the expression uses feature geometry for some computation. More...
 
QgsExpressionoperator= (const QgsExpression &other)
 Create a copy of this expression. More...
 
bool operator== (const QgsExpression &other) const
 Compares two expressions. More...
 
QString parserErrorString () const
 Returns parser error. More...
 
bool prepare (const QgsExpressionContext *context)
 Get the expression ready for evaluation - find out column indexes. More...
 
QSet< int > referencedAttributeIndexes (const QgsFields &fields) const
 Return a list of field name indexes obtained from the provided fields. More...
 
QSet< QString > referencedColumns () const
 Get list of columns referenced by the expression. More...
 
QSet< QString > referencedVariables () const
 Return a list of all variables which are used in this expression. More...
 
const NoderootNode () const
 Returns root node of the expression. Root node is null is parsing has failed. More...
 
void setAreaUnits (QgsUnitTypes::AreaUnit unit)
 Sets the desired areal units for calculations involving geomCalculator(), e.g., "$area". More...
 
void setDistanceUnits (QgsUnitTypes::DistanceUnit unit)
 Sets the desired distance units for calculations involving geomCalculator(), e.g., "$length" and "$perimeter". More...
 
void setEvalErrorString (const QString &str)
 Set evaluation error (used internally by evaluation functions) More...
 
void setExpression (const QString &expression)
 Set the expression string, will reset the whole internal structure. More...
 
void setGeomCalculator (const QgsDistanceArea *calc)
 Sets the geometry calculator used for distance and area calculations in expressions. More...
 

Static Public Member Functions

static const QStringList & BuiltinFunctions ()
 
static bool checkExpression (const QString &text, const QgsExpressionContext *context, QString &errorMessage)
 Tests whether a string is a valid expression. More...
 
static void cleanRegisteredFunctions ()
 Deletes all registered functions whose ownership have been transferred to the expression engine. More...
 
static double evaluateToDouble (const QString &text, const double fallbackValue)
 Attempts to evaluate a text string as an expression to a resultant double value. More...
 
static QString formatPreviewString (const QVariant &value)
 Formats an expression result for friendly display to the user. More...
 
static int functionCount ()
 Returns the number of functions defined in the parser. More...
 
static int functionIndex (const QString &name)
 return index of the function in Functions array More...
 
static const QList< Function * > & Functions ()
 
static QString group (const QString &group)
 Returns the translated name for a function group. More...
 
static QString helpText (QString name)
 Returns the help text for a specified function. More...
 
static bool isFunctionName (const QString &name)
 tells whether the identifier is a name of existing function More...
 
static QString quotedColumnRef (QString name)
 Returns a quoted column reference (in double quotes) More...
 
static QString quotedString (QString text)
 Returns a quoted version of a string (in single quotes) More...
 
static QString quotedValue (const QVariant &value)
 Returns a string representation of a literal value, including appropriate quotations where required. More...
 
static QString quotedValue (const QVariant &value, QVariant::Type type)
 Returns a string representation of a literal value, including appropriate quotations where required. More...
 
static bool registerFunction (Function *function, bool transferOwnership=false)
 Registers a function to the expression engine. More...
 
static QString replaceExpressionText (const QString &action, const QgsExpressionContext *context, const QgsDistanceArea *distanceArea=nullptr)
 This function replaces each expression between [% and %] in the string with the result of its evaluation with the specified context. More...
 
static bool unregisterFunction (const QString &name)
 Unregisters a function from the expression engine. More...
 
static QString variableHelpText (const QString &variableName, bool showValue=true, const QVariant &value=QVariant())
 Returns the help text for a specified variable. More...
 

Static Public Attributes

static const char * BINARY_OPERATOR_TEXT []
 
static QStringList sBuiltinFunctions
 
static QList< Function * > sFunctions
 
static QList< Function * > sOwnedFunctions
 List of functions owned by the expression engine. More...
 
static const char * UNARY_OPERATOR_TEXT []
 

Protected Member Functions

void detach ()
 Helper for implicit sharing. More...
 
void initGeomCalculator ()
 

Static Protected Member Functions

static void initFunctionHelp ()
 
static void initVariableHelp ()
 

Protected Attributes

QgsExpressionPrivate * d = nullptr
 

Static Protected Attributes

static QHash< QString, HelpsFunctionHelpTexts
 
static QHash< QString, QString > sGroups
 
static QHash< QString, QString > sVariableHelpTexts
 

Friends

class QgsOgcUtils
 

Detailed Description

Class for parsing and evaluation of expressions (formerly called "search strings").

The expressions try to follow both syntax and semantics of SQL expressions.

Usage:

QgsExpression exp("gid*2 > 10 and type not in ('D','F'));
if (exp.hasParserError())
{
// show error message with parserErrorString() and exit
}
QVariant result = exp.evaluate(feature, fields);
if (exp.hasEvalError())
{
// show error message with evalErrorString()
}
else
{
// examine the result
}

Three Value Logic

Similarly to SQL, this class supports three-value logic: true/false/unknown. Unknown value may be a result of operations with missing data (NULL). Please note that NULL is different value than zero or an empty string. For example 3 > NULL returns unknown.

There is no special (three-value) 'boolean' type: true/false is represented as 1/0 integer, unknown value is represented the same way as NULL values: invalid QVariant.

Performance

For better performance with many evaluations you may first call prepare(fields) function to find out indices of columns and then repeatedly call evaluate(feature).

Type conversion

Operators and functions that expect arguments to be of a particular type automatically convert the arguments to that type, e.g. sin('2.1') will convert the argument to a double, length(123) will first convert the number to a string. Explicit conversion can be achieved with to_int, to_real, to_string functions. If implicit or explicit conversion is invalid, the evaluation returns an error. Comparison operators do numeric comparison in case both operators are numeric (int/double) or they can be converted to numeric types.

Implicit sharing

This class is implicitly shared, copying has a very low overhead. It is normally preferable to call QgsExpression( otherExpression ) instead of QgsExpression( otherExpression.expression() ). A deep copy will only be made when prepare() is called. For usage this means mainly, that you should normally keep an unprepared master copy of a QgsExpression and whenever using it with a particular QgsFeatureIterator copy it just before and prepare it using the same context as the iterator.

Implicit sharing was added in 2.14

Definition at line 110 of file qgsexpression.h.

Member Typedef Documentation

◆ FcnEval

typedef QVariant( * QgsExpression::FcnEval) (const QVariantList &values, const QgsExpressionContext *context, QgsExpression *parent)

Function definition for evaluation against an expression context, using a list of values as parameters to the function.

Definition at line 449 of file qgsexpression.h.

◆ ParameterList

List of parameters, used for function definition.

Definition at line 445 of file qgsexpression.h.

◆ WhenThenList

Definition at line 1201 of file qgsexpression.h.

Member Enumeration Documentation

◆ BinaryOperator

list of binary operators

Note
if any change is made here, the definition of QgsExpression::BinaryOperatorText[] must be adapted.
Enumerator
boOr 
boAnd 
boEQ 

=

boNE 

<>

boLE 

<=

boGE 

>=

boLT 

<

boGT 

>

boRegexp 
boLike 
boNotLike 
boILike 
boNotILike 
boIs 
boIsNot 
boPlus 
boMinus 
boMul 
boDiv 
boIntDiv 
boMod 
boPow 
boConcat 

Definition at line 350 of file qgsexpression.h.

◆ NodeType

Enumerator
ntUnaryOperator 
ntBinaryOperator 
ntInOperator 
ntFunction 
ntLiteral 
ntColumnRef 
ntCondition 

Definition at line 828 of file qgsexpression.h.

◆ SpatialOperator

Enumerator
soBbox 
soIntersects 
soContains 
soCrosses 
soEquals 
soDisjoint 
soOverlaps 
soTouches 
soWithin 

Definition at line 384 of file qgsexpression.h.

◆ UnaryOperator

list of unary operators

Note
if any change is made here, the definition of QgsExpression::UnaryOperatorText[] must be adapted.
Enumerator
uoNot 
uoMinus 

Definition at line 340 of file qgsexpression.h.

Constructor & Destructor Documentation

◆ QgsExpression() [1/3]

QgsExpression::QgsExpression ( const QString &  expr)

Creates a new expression based on the provided string.

The string will immediately be parsed. For optimization prepare() should always be called before every loop in which this expression is used.

Definition at line 4368 of file qgsexpression.cpp.

◆ QgsExpression() [2/3]

QgsExpression::QgsExpression ( const QgsExpression other)

Create a copy of this expression.

This is preferred over recreating an expression from a string since it does not need to be re-parsed.

Definition at line 4376 of file qgsexpression.cpp.

◆ QgsExpression() [3/3]

QgsExpression::QgsExpression ( )

Create an empty expression.

Since
QGIS 3.0

Definition at line 4394 of file qgsexpression.cpp.

◆ ~QgsExpression()

QgsExpression::~QgsExpression ( )

Definition at line 4399 of file qgsexpression.cpp.

Member Function Documentation

◆ areaUnits()

QgsUnitTypes::AreaUnit QgsExpression::areaUnits ( ) const

Returns the desired areal units for calculations involving geomCalculator(), e.g., "$area".

Note
areas are only converted when a geomCalculator() has been set
Since
QGIS 2.14
See also
setAreaUnits()
distanceUnits()

Definition at line 4585 of file qgsexpression.cpp.

◆ BuiltinFunctions()

const QStringList & QgsExpression::BuiltinFunctions ( )
static

Definition at line 3852 of file qgsexpression.cpp.

◆ checkExpression()

bool QgsExpression::checkExpression ( const QString &  text,
const QgsExpressionContext context,
QString &  errorMessage 
)
static

Tests whether a string is a valid expression.

Parameters
textstring to test
contextoptional expression context
errorMessagewill be filled with any error message from the validation
Returns
true if string is a valid expression
Since
QGIS 2.12

Definition at line 4266 of file qgsexpression.cpp.

◆ cleanRegisteredFunctions()

void QgsExpression::cleanRegisteredFunctions ( )
static

Deletes all registered functions whose ownership have been transferred to the expression engine.

Since
QGIS 2.12

Definition at line 3844 of file qgsexpression.cpp.

◆ detach()

void QgsExpression::detach ( )
protected

Helper for implicit sharing.

When called will create a new deep copy of this expression.

Note
not available in Python bindings

Definition at line 4481 of file qgsexpression.cpp.

◆ distanceUnits()

QgsUnitTypes::DistanceUnit QgsExpression::distanceUnits ( ) const

Returns the desired distance units for calculations involving geomCalculator(), e.g., "$length" and "$perimeter".

Note
distances are only converted when a geomCalculator() has been set
Since
QGIS 2.14
See also
setDistanceUnits()
areaUnits()

Definition at line 4575 of file qgsexpression.cpp.

◆ dump()

QString QgsExpression::dump ( ) const

Return an expression string, constructed from the internal abstract syntax tree.

This does not contain any nice whitespace formatting or comments. In general it is preferable to use expression() instead.

Definition at line 4562 of file qgsexpression.cpp.

◆ evalErrorString()

QString QgsExpression::evalErrorString ( ) const

Returns evaluation error.

Definition at line 4552 of file qgsexpression.cpp.

◆ evaluate() [1/2]

QVariant QgsExpression::evaluate ( )

Evaluate the feature and return the result.

Note
this method does not expect that prepare() has been called on this instance
Since
QGIS 2.12

Definition at line 4523 of file qgsexpression.cpp.

◆ evaluate() [2/2]

QVariant QgsExpression::evaluate ( const QgsExpressionContext context)

Evaluate the expression against the specified context and return the result.

Parameters
contextcontext for evaluating expression
Note
prepare() should be called before calling this method.
Since
QGIS 2.12

Definition at line 4535 of file qgsexpression.cpp.

◆ evaluateToDouble()

double QgsExpression::evaluateToDouble ( const QString &  text,
const double  fallbackValue 
)
static

Attempts to evaluate a text string as an expression to a resultant double value.

Parameters
texttext to evaluate as expression
fallbackValuevalue to return if text can not be evaluated as a double
Returns
evaluated double value, or fallback value
Since
QGIS 2.7
Note
this method is inefficient for bulk evaluation of expressions, it is intended for one-off evaluations only.

Definition at line 4645 of file qgsexpression.cpp.

◆ expression()

QString QgsExpression::expression ( ) const

Return the original, unmodified expression string.

If there was none supplied because it was constructed by sole API calls, dump() will be used to create one instead.

Definition at line 4282 of file qgsexpression.cpp.

◆ formatPreviewString()

QString QgsExpression::formatPreviewString ( const QVariant &  value)
static

Formats an expression result for friendly display to the user.

Truncates the result to a sensible length, and presents text representations of non numeric/text types (e.g., geometries and features).

Parameters
valueexpression result to format
Returns
formatted string, may contain HTML formatting characters
Since
QGIS 2.14

Definition at line 6115 of file qgsexpression.cpp.

◆ functionCount()

int QgsExpression::functionCount ( )
static

Returns the number of functions defined in the parser.

Returns
The number of function defined in the parser.

Definition at line 4362 of file qgsexpression.cpp.

◆ functionIndex()

int QgsExpression::functionIndex ( const QString &  name)
static

return index of the function in Functions array

Definition at line 4346 of file qgsexpression.cpp.

◆ Functions()

const QList< QgsExpression::Function * > & QgsExpression::Functions ( )
static

Definition at line 3864 of file qgsexpression.cpp.

◆ geomCalculator()

QgsDistanceArea * QgsExpression::geomCalculator ( )

Return calculator used for distance and area calculations (used by $length, $area and $perimeter functions only)

See also
setGeomCalculator()
distanceUnits()
areaUnits()

Definition at line 4570 of file qgsexpression.cpp.

◆ group()

QString QgsExpression::group ( const QString &  group)
static

Returns the translated name for a function group.

Parameters
groupuntranslated group name

Definition at line 6089 of file qgsexpression.cpp.

◆ hasEvalError()

bool QgsExpression::hasEvalError ( ) const

Returns true if an error occurred when evaluating last input.

Definition at line 4547 of file qgsexpression.cpp.

◆ hasParserError()

bool QgsExpression::hasParserError ( ) const

Returns true if an error occurred when parsing the input expression.

Definition at line 4416 of file qgsexpression.cpp.

◆ helpText()

QString QgsExpression::helpText ( QString  name)
static

Returns the help text for a specified function.

Parameters
namefunction name
See also
variableHelpText()

Definition at line 5869 of file qgsexpression.cpp.

◆ initFunctionHelp()

static void QgsExpression::initFunctionHelp ( )
staticprotected
Note
not available in Python bindings

◆ initGeomCalculator()

void QgsExpression::initGeomCalculator ( )
protected

Definition at line 4472 of file qgsexpression.cpp.

◆ initVariableHelp()

void QgsExpression::initVariableHelp ( )
staticprotected
Note
not available in Python bindings

Definition at line 5985 of file qgsexpression.cpp.

◆ isField()

bool QgsExpression::isField ( ) const
inline

Checks whether an expression consists only of a single field reference.

Since
QGIS 2.9

Definition at line 233 of file qgsexpression.h.

◆ isFunctionName()

bool QgsExpression::isFunctionName ( const QString &  name)
static

tells whether the identifier is a name of existing function

Definition at line 4341 of file qgsexpression.cpp.

◆ isValid()

bool QgsExpression::isValid ( ) const

Checks if this expression is valid.

A valid expression could be parsed but does not necessarily evaluate properly.

Since
QGIS 3.0

Definition at line 4411 of file qgsexpression.cpp.

◆ needsGeometry()

bool QgsExpression::needsGeometry ( ) const

Returns true if the expression uses feature geometry for some computation.

Definition at line 4465 of file qgsexpression.cpp.

◆ operator=()

QgsExpression & QgsExpression::operator= ( const QgsExpression other)

Create a copy of this expression.

This is preferred over recreating an expression from a string since it does not need to be re-parsed.

Definition at line 4382 of file qgsexpression.cpp.

◆ operator==()

bool QgsExpression::operator== ( const QgsExpression other) const

Compares two expressions.

The operator returns true if the expression string is equal.

Since
QGIS 3.0

Definition at line 4406 of file qgsexpression.cpp.

◆ parserErrorString()

QString QgsExpression::parserErrorString ( ) const

Returns parser error.

Definition at line 4418 of file qgsexpression.cpp.

◆ prepare()

bool QgsExpression::prepare ( const QgsExpressionContext context)

Get the expression ready for evaluation - find out column indexes.

Parameters
contextcontext for preparing expression
Since
QGIS 2.12

Definition at line 4502 of file qgsexpression.cpp.

◆ quotedColumnRef()

QString QgsExpression::quotedColumnRef ( QString  name)
static

Returns a quoted column reference (in double quotes)

See also
quotedString()
quotedValue()

Definition at line 4290 of file qgsexpression.cpp.

◆ quotedString()

QString QgsExpression::quotedString ( QString  text)
static

Returns a quoted version of a string (in single quotes)

See also
quotedValue()
quotedColumnRef()

Definition at line 4295 of file qgsexpression.cpp.

◆ quotedValue() [1/2]

QString QgsExpression::quotedValue ( const QVariant &  value)
static

Returns a string representation of a literal value, including appropriate quotations where required.

Parameters
valuevalue to convert to a string representation
Since
QGIS 2.14
See also
quotedString()
quotedColumnRef()

Definition at line 4304 of file qgsexpression.cpp.

◆ quotedValue() [2/2]

QString QgsExpression::quotedValue ( const QVariant &  value,
QVariant::Type  type 
)
static

Returns a string representation of a literal value, including appropriate quotations where required.

Parameters
valuevalue to convert to a string representation
typevalue type
Since
QGIS 2.14
See also
quotedString()
quotedColumnRef()

Definition at line 4309 of file qgsexpression.cpp.

◆ referencedAttributeIndexes()

QSet< int > QgsExpression::referencedAttributeIndexes ( const QgsFields fields) const

Return a list of field name indexes obtained from the provided fields.

Since
QGIS 3.0

Definition at line 4444 of file qgsexpression.cpp.

◆ referencedColumns()

QSet< QString > QgsExpression::referencedColumns ( ) const

Get list of columns referenced by the expression.

Note
If the returned list contains the QgsFeatureRequest::AllAttributes constant then all attributes from the layer are required for evaluation of the expression. QgsFeatureRequest::setSubsetOfAttributes automatically handles this case.
See also
referencedAttributeIndexes()

Definition at line 4420 of file qgsexpression.cpp.

◆ referencedVariables()

QSet< QString > QgsExpression::referencedVariables ( ) const

Return a list of all variables which are used in this expression.

If the list contains a NULL QString, there is a variable name used which is determined at runtime.

Since
QGIS 3.0

Definition at line 4428 of file qgsexpression.cpp.

◆ registerFunction()

bool QgsExpression::registerFunction ( QgsExpression::Function function,
bool  transferOwnership = false 
)
static

Registers a function to the expression engine.

This is required to allow expressions to utilize the function.

Parameters
functionfunction to register
transferOwnershipset to true to transfer ownership of function to expression engine
Returns
true on successful registration
See also
unregisterFunction

Definition at line 3815 of file qgsexpression.cpp.

◆ replaceExpressionText()

QString QgsExpression::replaceExpressionText ( const QString &  action,
const QgsExpressionContext context,
const QgsDistanceArea distanceArea = nullptr 
)
static

This function replaces each expression between [% and %] in the string with the result of its evaluation with the specified context.

Additional substitutions can be passed through the substitutionMap parameter

Parameters
actionThe source string in which placeholders should be replaced.
contextExpression context
distanceAreaOptional QgsDistanceArea. If specified, the QgsDistanceArea is used for distance and area conversion
Since
QGIS 2.12

Definition at line 4595 of file qgsexpression.cpp.

◆ rootNode()

const QgsExpression::Node * QgsExpression::rootNode ( ) const

Returns root node of the expression. Root node is null is parsing has failed.

Definition at line 6209 of file qgsexpression.cpp.

◆ setAreaUnits()

void QgsExpression::setAreaUnits ( QgsUnitTypes::AreaUnit  unit)

Sets the desired areal units for calculations involving geomCalculator(), e.g., "$area".

Note
areas are only converted when a geomCalculator() has been set
Since
QGIS 2.14
See also
areaUnits()
setDistanceUnits()

Definition at line 4590 of file qgsexpression.cpp.

◆ setDistanceUnits()

void QgsExpression::setDistanceUnits ( QgsUnitTypes::DistanceUnit  unit)

Sets the desired distance units for calculations involving geomCalculator(), e.g., "$length" and "$perimeter".

Note
distances are only converted when a geomCalculator() has been set
Since
QGIS 2.14
See also
distanceUnits()
setAreaUnits()

Definition at line 4580 of file qgsexpression.cpp.

◆ setEvalErrorString()

void QgsExpression::setEvalErrorString ( const QString &  str)

Set evaluation error (used internally by evaluation functions)

Definition at line 4557 of file qgsexpression.cpp.

◆ setExpression()

void QgsExpression::setExpression ( const QString &  expression)

Set the expression string, will reset the whole internal structure.

Since
QGIS 3.0

Definition at line 4274 of file qgsexpression.cpp.

◆ setGeomCalculator()

void QgsExpression::setGeomCalculator ( const QgsDistanceArea calc)

Sets the geometry calculator used for distance and area calculations in expressions.

(used by $length, $area and $perimeter functions only). By default, no geometry calculator is set and all distance and area calculations are performed using simple cartesian methods (ie no ellipsoidal calculations).

Parameters
calcgeometry calculator. Ownership is not transferred. Set to a nullptr to force cartesian calculations.
See also
geomCalculator()

Definition at line 4493 of file qgsexpression.cpp.

◆ unregisterFunction()

bool QgsExpression::unregisterFunction ( const QString &  name)
static

Unregisters a function from the expression engine.

The function will no longer be usable in expressions.

Parameters
namefunction name
See also
registerFunction

Definition at line 3828 of file qgsexpression.cpp.

◆ variableHelpText()

QString QgsExpression::variableHelpText ( const QString &  variableName,
bool  showValue = true,
const QVariant &  value = QVariant() 
)
static

Returns the help text for a specified variable.

Parameters
variableNamename of variable
showValueset to true to include current value of variable in help text
valuecurrent value of variable to show in help text
See also
helpText()
Since
QGIS 2.12

Definition at line 6067 of file qgsexpression.cpp.

Friends And Related Function Documentation

◆ QgsOgcUtils

friend class QgsOgcUtils
friend

Definition at line 1356 of file qgsexpression.h.

Member Data Documentation

◆ BINARY_OPERATOR_TEXT

const char * QgsExpression::BINARY_OPERATOR_TEXT
static
Initial value:
=
{
"OR", "AND",
"=", "<>", "<=", ">=", "<", ">", "~", "LIKE", "NOT LIKE", "ILIKE", "NOT ILIKE", "IS", "IS NOT",
"+", "-", "*", "/", "//", "%", "^",
"||"
}
Note
not available in Python bindings

Definition at line 398 of file qgsexpression.h.

◆ d

QgsExpressionPrivate* QgsExpression::d = nullptr
protected

Definition at line 1345 of file qgsexpression.h.

◆ sBuiltinFunctions

QStringList QgsExpression::sBuiltinFunctions
static
Note
not available in Python bindings

Definition at line 758 of file qgsexpression.h.

◆ sFunctionHelpTexts

QHash<QString, Help> QgsExpression::sFunctionHelpTexts
staticprotected

Definition at line 1347 of file qgsexpression.h.

◆ sFunctions

QList< QgsExpression::Function * > QgsExpression::sFunctions
static
Note
not available in Python bindings

Definition at line 754 of file qgsexpression.h.

◆ sGroups

QHash< QString, QString > QgsExpression::sGroups
staticprotected

Definition at line 1349 of file qgsexpression.h.

◆ sOwnedFunctions

QList< QgsExpression::Function * > QgsExpression::sOwnedFunctions
static

List of functions owned by the expression engine.

Note
not available in Python bindings

Definition at line 777 of file qgsexpression.h.

◆ sVariableHelpTexts

QHash< QString, QString > QgsExpression::sVariableHelpTexts
staticprotected

Definition at line 1348 of file qgsexpression.h.

◆ UNARY_OPERATOR_TEXT

const char * QgsExpression::UNARY_OPERATOR_TEXT
static
Initial value:
=
{
"NOT", "-"
}
Note
not available in Python bindings

Definition at line 401 of file qgsexpression.h.


The documentation for this class was generated from the following files: