The QValue3DAxisFormatter class is a base class for value axis formatters. 更多...
头: | #include <QValue3DAxisFormatter> |
CMake: |
find_package(Qt6 REQUIRED COMPONENTS DataVisualization)
target_link_libraries(mytarget PRIVATE Qt6::DataVisualization) |
qmake: | QT += datavisualization |
Since: | QtDataVisualization 1.1 |
实例化: | ValueAxis3DFormatter |
继承: | QObject |
继承者: | QLogValue3DAxisFormatter |
QValue3DAxisFormatter (QObject * parent = nullptr) | |
virtual | ~QValue3DAxisFormatter () |
bool | allowNegatives () const |
bool | allowZero () const |
QValue3DAxis * | axis () const |
virtual QValue3DAxisFormatter * | createNewInstance () const |
QList<float> & | gridPositions () const |
QList<float> & | labelPositions () const |
QStringList & | labelStrings () const |
QLocale | locale () const |
void | markDirty (bool labelsChange = false) |
virtual void | populateCopy (QValue3DAxisFormatter & copy ) const |
virtual float | positionAt (float value ) const |
virtual void | recalculate () |
void | setAllowNegatives (bool allow ) |
void | setAllowZero (bool allow ) |
void | setLocale (const QLocale & locale ) |
virtual QString | stringForValue (qreal value , const QString & format ) const |
QList<float> & | subGridPositions () const |
virtual float | valueAt (float position ) const |
This class provides formatting rules for a linear value 3D axis. Subclass it if you want to implement custom value axes.
The base class has no public API beyond constructors and destructors. It is meant to be only used internally. However, subclasses may implement public properties as needed.
另请参阅 QValue3DAxis and QLogValue3DAxisFormatter .
[explicit]
QValue3DAxisFormatter::
QValue3DAxisFormatter
(
QObject
*
parent
= nullptr)
Constructs a new value 3D axis formatter with the optional parent parent .
[虚拟]
QValue3DAxisFormatter::
~QValue3DAxisFormatter
()
Deletes the value 3D axis formatter.
[protected]
bool
QValue3DAxisFormatter::
allowNegatives
() const
返回
true
if negative values are valid values for the parent axis. The default implementation always returns
true
.
另请参阅 setAllowNegatives ().
[protected]
bool
QValue3DAxisFormatter::
allowZero
() const
返回
true
if zero is a valid value for the parent axis. The default implementation always returns
true
.
另请参阅 setAllowZero ().
[protected]
QValue3DAxis
*QValue3DAxisFormatter::
axis
() const
Returns the parent axis. The parent axis must only be accessed in the recalculate () method to maintain thread safety in environments using a threaded renderer.
另请参阅 recalculate ().
[virtual protected]
QValue3DAxisFormatter
*QValue3DAxisFormatter::
createNewInstance
() const
Creates a new empty value 3D axis formatter. Must be reimplemented in a subclass.
Returns the new formatter. The renderer uses this method to cache a copy of the formatter. The ownership of the new copy is transferred to the caller.
[protected]
QList
<
float
> &QValue3DAxisFormatter::
gridPositions
() const
Returns a reference to the array of normalized grid line positions. The default array size is equal to the segment count of the parent axis plus one, but a subclassed implementation of the
recalculate
() method may resize the array differently. The values should be between
0.0
(the minimum value) and
1.0
(the maximum value), inclusive.
另请参阅 QValue3DAxis::segmentCount and recalculate ().
[protected]
QList
<
float
> &QValue3DAxisFormatter::
labelPositions
() const
Returns a reference to the array of normalized label positions. The default array size is equal to the segment count of the parent axis plus one, but a subclassed implementation of the
recalculate
() method may resize the array differently. The values should be between
0.0
(the minimum value) and
1.0
(the maximum value), inclusive. By default, the label at the index zero corresponds to the minimum value of the axis.
另请参阅 QValue3DAxis::segmentCount , QAbstract3DAxis::labels ,和 recalculate ().
[protected]
QStringList
&QValue3DAxisFormatter::
labelStrings
() const
Returns a reference to the string list containing formatter label strings. The array size must be equal to the size of the label positions array, which the indexes also correspond to.
另请参阅 labelPositions ().
[protected]
QLocale
QValue3DAxisFormatter::
locale
() const
Returns the current locale this formatter is using.
另请参阅 setLocale ().
[protected]
void
QValue3DAxisFormatter::
markDirty
(
bool
labelsChange
= false)
Marks this formatter dirty, prompting the renderer to make a new copy of its cache on the next renderer synchronization. This method should be called by a subclass whenever the formatter is changed in a way that affects the resolved values. Set
labelsChange
to
true
if the change requires regenerating the parent axis label strings.
[virtual protected]
void
QValue3DAxisFormatter::
populateCopy
(
QValue3DAxisFormatter
&
copy
) const
Copies all the values necessary for resolving positions, values, and strings with this formatter to the copy of the formatter. When reimplementing this method in a subclass, call the superclass version at some point. The renderer uses this method to cache a copy of the formatter.
Returns the new copy. The ownership of the new copy transfers to the caller.
[virtual protected]
float
QValue3DAxisFormatter::
positionAt
(
float
value
) const
Returns the normalized position along the axis for the given
value
. The returned value should be between
0.0
(the minimum value) and
1.0
(the maximum value), inclusive, if the value is within the parent axis range.
Reimplement this method if the position cannot be resolved by linear interpolation between the parent axis minimum and maximum values.
另请参阅 recalculate () 和 valueAt ().
[virtual protected]
void
QValue3DAxisFormatter::
recalculate
()
Resizes and populates the label and grid line position arrays and the label strings array, as well as calculates any values needed to map a value to its position. The parent axis can be accessed from inside this function.
This method must be reimplemented in a subclass if the default array contents are not suitable.
见 gridPositions (), subGridPositions (), labelPositions (),和 labelStrings () methods for documentation about the arrays that need to be resized and populated.
另请参阅 gridPositions (), subGridPositions (), labelPositions (), labelStrings (),和 axis ().
[protected]
void
QValue3DAxisFormatter::
setAllowNegatives
(
bool
allow
)
Allows the parent axis to have negative values if
allow
is
true
.
另请参阅 allowNegatives ().
[protected]
void
QValue3DAxisFormatter::
setAllowZero
(
bool
allow
)
Allows the parent axis to have a zero value if
allow
is
true
.
另请参阅 allowZero ().
[protected]
void
QValue3DAxisFormatter::
setLocale
(const
QLocale
&
locale
)
设置 locale that this formatter uses. The graph automatically sets the formatter's locale to a graph's locale whenever the parent axis is set as an active axis of the graph, the axis formatter is set to an axis attached to the graph, or the graph's locale changes.
另请参阅 locale () 和 QAbstract3DGraph::locale .
[virtual protected]
QString
QValue3DAxisFormatter::
stringForValue
(
qreal
value
, const
QString
&
format
) const
Returns the formatted label string using the specified value and format .
Reimplement this method in a subclass to resolve the formatted string for a given value if the default formatting rules specified for QValue3DAxis::labelFormat property are not sufficient.
另请参阅 recalculate (), labelStrings (),和 QValue3DAxis::labelFormat .
[protected]
QList
<
float
> &QValue3DAxisFormatter::
subGridPositions
() const
Returns a reference to the array of normalized subgrid line positions. The default array size is equal to the segment count of the parent axis times the sub-segment count of the parent axis minus one, but a subclassed implementation of the
recalculate
() method may resize the array differently. The values should be between
0.0
(the minimum value) and
1.0
(the maximum value), inclusive.
另请参阅 QValue3DAxis::segmentCount , QValue3DAxis::subSegmentCount ,和 recalculate ().
[virtual protected]
float
QValue3DAxisFormatter::
valueAt
(
float
position
) const
Returns the value at the normalized
position
along the axis. The
position
value should be between
0.0
(the minimum value) and
1.0
(the maximum value), inclusive, to obtain values within the parent axis range.
Reimplement this method if the value cannot be resolved by linear interpolation between the parent axis minimum and maximum values.
另请参阅 recalculate () 和 positionAt ().