QGIS API Documentation
2.18.21-Las Palmas (9fba24a)
src
core
qgslabel.h
Go to the documentation of this file.
1
/***************************************************************************
2
qgslabel.h - render vector labels
3
-------------------
4
begin : August 2004
5
copyright : (C) 2004 by Radim Blazek
6
email :
[email protected]
7
***************************************************************************/
8
/***************************************************************************
9
* *
10
* This program is free software; you can redistribute it and/or modify *
11
* it under the terms of the GNU General Public License as published by *
12
* the Free Software Foundation; either version 2 of the License, or *
13
* (at your option) any later version. *
14
* *
15
***************************************************************************/
16
#ifndef QGSLABEL_H
17
#define QGSLABEL_H
18
19
#include <vector>
20
21
#include <QColor>
22
#include <QList>
23
#include <QMap>
24
25
#include "
qgspoint.h
"
26
27
class
QDomNode
;
28
class
QDomDocument
;
29
class
QDomElement
;
30
class
QString
;
31
class
QPainter
;
32
class
QPaintDevice
;
33
34
class
QgsFeature
;
35
class
QgsField
;
36
class
QgsLabelAttributes
;
37
38
#include "
qgsfield.h
"
39
#include "
qgsrectangle.h
"
40
#include "
qgsrendercontext.h
"
41
42
typedef
QList<int>
QgsAttributeList
;
43
44
class
QgsFields
;
45
51
class
CORE_EXPORT
QgsLabel
52
{
53
public
:
54
QgsLabel
(
const
QgsFields
& fields );
55
56
~
QgsLabel
();
57
58
/* Fields */
59
enum
LabelField
60
{
61
Text = 0,
62
Family
,
63
Size
,
64
SizeType
,
65
Bold
,
66
Italic
,
67
Underline
,
68
Color
,
69
XCoordinate
,
70
YCoordinate
,
71
XOffset
,
72
YOffset
,
73
Angle
,
74
Alignment
,
75
BufferEnabled
,
76
BufferSize
,
77
BufferColor
,
78
BufferBrush
,
79
BorderWidth
,
80
BorderColor
,
81
BorderStyle
,
82
MultilineEnabled
,
83
StrikeOut
,
84
LabelFieldCount
85
};
86
87
struct
labelpoint
88
{
89
QgsPoint
p
;
90
double
angle
;
91
};
92
99
void
renderLabel(
QgsRenderContext
&renderContext,
QgsFeature
&feature,
bool
selected,
QgsLabelAttributes
*classAttributes =
nullptr
);
100
104
void
readXML(
const
QDomNode
& node );
105
107
void
writeXML(
QDomNode
& label_node,
QDomDocument
& document )
const
;
108
110
void
addRequiredFields(
QgsAttributeList
& fields )
const
;
111
113
void
setFields(
const
QgsFields
& fields );
114
116
QgsFields
& fields();
117
122
QgsLabelAttributes
*labelAttributes();
123
125
void
setLabelField(
int
attr,
int
fieldIndex );
126
128
QString
labelField(
int
attr )
const
;
129
135
QString
fieldValue(
int
attr,
QgsFeature
& feature );
136
138
void
setMinScale(
float
theMinScale );
139
float
minScale()
const
;
140
142
void
setMaxScale(
float
theMaxScale );
143
float
maxScale()
const
;
144
146
void
setScaleBasedVisibility(
bool
theVisibilityFlag );
147
bool
scaleBasedVisibility()
const
;
148
150
bool
isInScaleRange(
double
scale )
const
;
151
152
private
:
154
void
renderLabel(
QgsRenderContext
&renderContext,
QgsPoint
point,
155
const
QString
& text,
const
QFont
& font,
const
QPen
& pen,
156
int
dx,
int
dy,
157
double
xoffset,
double
yoffset,
158
double
ang,
159
int
width,
int
height,
int
alignment );
160
161
bool
readLabelField(
QDomElement
&el,
int
attr,
const
QString
& prefix );
162
164
void
labelPoint( std::vector<labelpoint>&,
QgsFeature
&feature );
165
167
const
unsigned
char
* labelPoint(
labelpoint
& point,
const
unsigned
char
* wkb,
size_t
wkblen );
168
170
QColor
mSelectionColor;
171
173
QgsLabelAttributes
*mLabelAttributes;
174
176
QgsFields
mFields;
177
179
std::vector<QString> mLabelField;
180
182
std::vector<int> mLabelFieldIdx;
183
185
float
mMinScale;
187
float
mMaxScale;
189
bool
mScaleBasedVisibility;
190
191
QgsLabel
(
const
QgsLabel
& rh );
192
QgsLabel
& operator=(
const
QgsLabel
& rh );
193
};
194
195
#endif
qgsfield.h
QgsLabel::Underline
Definition:
qgslabel.h:67
QgsLabel::SizeType
Definition:
qgslabel.h:64
qgsrendercontext.h
QgsLabel::labelpoint::p
QgsPoint p
Definition:
qgslabel.h:89
QgsLabel::XOffset
Definition:
qgslabel.h:71
QgsLabel::YCoordinate
Definition:
qgslabel.h:70
QPaintDevice
QFont
QgsLabel::YOffset
Definition:
qgslabel.h:72
QgsFields
Container of fields for a vector layer.
Definition:
qgsfield.h:252
QgsLabel::XCoordinate
Definition:
qgslabel.h:69
QgsLabel::Alignment
Definition:
qgslabel.h:74
QgsLabel::BufferEnabled
Definition:
qgslabel.h:75
QDomNode
QgsLabel::BorderStyle
Definition:
qgslabel.h:81
QgsFeature
The feature class encapsulates a single feature including its id, geometry and a list of field/values...
Definition:
qgsfeature.h:187
QgsLabel::Color
Definition:
qgslabel.h:68
QgsLabel::BufferBrush
Definition:
qgslabel.h:78
QgsLabel::Family
Definition:
qgslabel.h:62
QgsLabel::BufferColor
Definition:
qgslabel.h:77
QgsAttributeList
QList< int > QgsAttributeList
Definition:
qgslabel.h:36
QgsLabel::MultilineEnabled
Definition:
qgslabel.h:82
QgsLabel::StrikeOut
Definition:
qgslabel.h:83
QPainter
QgsLabel::labelpoint::angle
double angle
Definition:
qgslabel.h:90
qgsrectangle.h
QString
QList< int >
QgsField
Encapsulate a field in an attribute table or data source.
Definition:
qgsfield.h:44
QColor
QgsPoint
A class to represent a point.
Definition:
qgspoint.h:117
QgsLabel::Size
Definition:
qgslabel.h:63
QDomDocument
QgsLabel
A class to render labels.
Definition:
qgslabel.h:51
QgsLabel::BufferSize
Definition:
qgslabel.h:76
QgsLabel::labelpoint
Definition:
qgslabel.h:87
QgsLabel::BorderWidth
Definition:
qgslabel.h:79
QgsRenderContext
Contains information about the context of a rendering operation.
Definition:
qgsrendercontext.h:45
QgsLabel::BorderColor
Definition:
qgslabel.h:80
QgsLabel::LabelField
LabelField
Definition:
qgslabel.h:59
QPen
QgsLabel::Bold
Definition:
qgslabel.h:65
QgsLabel::Italic
Definition:
qgslabel.h:66
QgsLabelAttributes
A class to store attributes needed for label rendering.
Definition:
qgslabelattributes.h:76
QDomElement
QgsLabel::Angle
Definition:
qgslabel.h:73
qgspoint.h
Generated on Sun Jun 24 2018 11:42:48 for QGIS API Documentation by
1.8.13