Proxy class for presenting data in item models with Q3DSurface . 更多...
| 頭: | #include <QItemModelSurfaceDataProxy> |
| Since: | QtDataVisualization 1.0 |
| 實例化: | ItemModelSurfaceDataProxy |
| 繼承: | QSurfaceDataProxy |
| enum | MultiMatchBehavior { MMBFirst, MMBLast, MMBAverage, MMBCumulativeY } |
|
|
| QItemModelSurfaceDataProxy (QObject * parent = Q_NULLPTR) | |
| QItemModelSurfaceDataProxy (QAbstractItemModel * itemModel , QObject * parent = Q_NULLPTR) | |
| QItemModelSurfaceDataProxy (QAbstractItemModel * itemModel , const QString & yPosRole , QObject * parent = Q_NULLPTR) | |
| QItemModelSurfaceDataProxy (QAbstractItemModel * itemModel , const QString & rowRole , const QString & columnRole , const QString & yPosRole , QObject * parent = Q_NULLPTR) | |
| QItemModelSurfaceDataProxy (QAbstractItemModel * itemModel , const QString & rowRole , const QString & columnRole , const QString & xPosRole , const QString & yPosRole , const QString & zPosRole , QObject * parent = Q_NULLPTR) | |
| QItemModelSurfaceDataProxy (QAbstractItemModel * itemModel , const QString & rowRole , const QString & columnRole , const QString & yPosRole , const QStringList & rowCategories , const QStringList & columnCategories , QObject * parent = Q_NULLPTR) | |
| QItemModelSurfaceDataProxy (QAbstractItemModel * itemModel , const QString & rowRole , const QString & columnRole , const QString & xPosRole , const QString & yPosRole , const QString & zPosRole , const QStringList & rowCategories , const QStringList & columnCategories , QObject * parent = Q_NULLPTR) | |
| virtual | ~QItemModelSurfaceDataProxy () |
| bool | autoColumnCategories () const |
| bool | autoRowCategories () const |
| QStringList | columnCategories () const |
| int | columnCategoryIndex (const QString & category ) |
| QString | columnRole () const |
| QRegExp | columnRolePattern () const |
| QString | columnRoleReplace () const |
| QAbstractItemModel * | itemModel () const |
| MultiMatchBehavior | multiMatchBehavior () const |
| void | remap (const QString & rowRole , const QString & columnRole , const QString & xPosRole , const QString & yPosRole , const QString & zPosRole , const QStringList & rowCategories , const QStringList & columnCategories ) |
| QStringList | rowCategories () const |
| int | rowCategoryIndex (const QString & category ) |
| QString | rowRole () const |
| QRegExp | rowRolePattern () const |
| QString | rowRoleReplace () const |
| void | setAutoColumnCategories (bool enable ) |
| void | setAutoRowCategories (bool enable ) |
| void | setColumnCategories (const QStringList & categories ) |
| void | setColumnRole (const QString & role ) |
| void | setColumnRolePattern (const QRegExp & pattern ) |
| void | setColumnRoleReplace (const QString & replace ) |
| void | setItemModel (QAbstractItemModel * itemModel ) |
| void | setMultiMatchBehavior (MultiMatchBehavior behavior ) |
| void | setRowCategories (const QStringList & categories ) |
| void | setRowRole (const QString & role ) |
| void | setRowRolePattern (const QRegExp & pattern ) |
| void | setRowRoleReplace (const QString & replace ) |
| void | setUseModelCategories (bool enable ) |
| void | setXPosRole (const QString & role ) |
| void | setXPosRolePattern (const QRegExp & pattern ) |
| void | setXPosRoleReplace (const QString & replace ) |
| void | setYPosRole (const QString & role ) |
| void | setYPosRolePattern (const QRegExp & pattern ) |
| void | setYPosRoleReplace (const QString & replace ) |
| void | setZPosRole (const QString & role ) |
| void | setZPosRolePattern (const QRegExp & pattern ) |
| void | setZPosRoleReplace (const QString & replace ) |
| bool | useModelCategories () const |
| QString | xPosRole () const |
| QRegExp | xPosRolePattern () const |
| QString | xPosRoleReplace () const |
| QString | yPosRole () const |
| QRegExp | yPosRolePattern () const |
| QString | yPosRoleReplace () const |
| QString | zPosRole () const |
| QRegExp | zPosRolePattern () const |
| QString | zPosRoleReplace () const |
| void | autoColumnCategoriesChanged (bool enable ) |
| void | autoRowCategoriesChanged (bool enable ) |
| void | columnCategoriesChanged () |
| void | columnRoleChanged (const QString & role ) |
| void | columnRolePatternChanged (const QRegExp & pattern ) |
| void | columnRoleReplaceChanged (const QString & replace ) |
| void | itemModelChanged (const QAbstractItemModel * itemModel ) |
| void | multiMatchBehaviorChanged (MultiMatchBehavior behavior ) |
| void | rowCategoriesChanged () |
| void | rowRoleChanged (const QString & role ) |
| void | rowRolePatternChanged (const QRegExp & pattern ) |
| void | rowRoleReplaceChanged (const QString & replace ) |
| void | useModelCategoriesChanged (bool enable ) |
| void | xPosRoleChanged (const QString & role ) |
| void | xPosRolePatternChanged (const QRegExp & pattern ) |
| void | xPosRoleReplaceChanged (const QString & replace ) |
| void | yPosRoleChanged (const QString & role ) |
| void | yPosRolePatternChanged (const QRegExp & pattern ) |
| void | yPosRoleReplaceChanged (const QString & replace ) |
| void | zPosRoleChanged (const QString & role ) |
| void | zPosRolePatternChanged (const QRegExp & pattern ) |
| void | zPosRoleReplaceChanged (const QString & replace ) |
Proxy class for presenting data in item models with Q3DSurface .
QItemModelSurfaceDataProxy allows you to use QAbstractItemModel derived models as a data source for Q3DSurface . It uses the defined mappings to map data from the model to rows, columns, and surface points of Q3DSurface graph.
Data is resolved asynchronously whenever the mapping or the model changes.
QSurfaceDataProxy::arrayReset
() is emitted when the data has been resolved. However, when
useModelCategories
property is set to
true
, single item changes are resolved synchronously, unless the same frame also contains a change that causes the whole model to be resolved.
Mappings can be used in the following ways:
true
, this proxy will map rows and columns of
QAbstractItemModel
to rows and columns of
Q3DSurface
, and uses the value returned for
Qt::DisplayRole
as Y-position by default. Row and column headers are used for Z-position and X-position by default, if they can be converted to floats. Otherwise row and column indices are used. The Y-position role to be used can be redefined if
Qt::DisplayRole
is not suitable. The Z-position and X-position roles to be used can be redefined if the headers or indices are not suitable.
For example, assume that you have a custom QAbstractItemModel storing surface topography data. Each item in the model has the roles "longitude", "latitude", and "height". The item model already contains the data properly sorted so that longitudes and latitudes are first encountered in correct order, which enables us to utilize the row and column category autogeneration. You could do the following to display the data in a surface graph:
QItemModelSurfaceDataProxy *proxy = new QItemModelSurfaceDataProxy(customModel, QStringLiteral("longitude"), // Row role QStringLiteral("latitude"), // Column role QStringLiteral("height")); // Y-position role
If the fields of the model do not contain the data in the exact format you need, you can specify a search pattern regular expression and a replace rule for each role to get the value in a format you need. For more information how the replace using regular expressions works, see QString::replace (const QRegExp &rx, const QString &after) function documentation. Note that using regular expressions has an impact on the performance, so it's more efficient to utilize item models where doing search and replace is not necessary to get the desired values.
For example about using the search patterns in conjunction with the roles, see ItemModelBarDataProxy usage in Qt Quick 2 Bars Example .
另請參閱 Qt Data Visualization 數據處理 .
Behavior types for QItemModelSurfaceDataProxy::multiMatchBehavior 特性。
| 常量 | 值 | 描述 |
|---|---|---|
QItemModelSurfaceDataProxy::MMBFirst
|
0
|
The position values are taken from the first item in the item model that matches each row/column combination. |
QItemModelSurfaceDataProxy::MMBLast
|
1
|
The position values are taken from the last item in the item model that matches each row/column combination. |
QItemModelSurfaceDataProxy::MMBAverage
|
2
|
The position values from all items matching each row/column combination are averaged together and the averages are used as the surface point position. |
QItemModelSurfaceDataProxy::MMBCumulativeY
|
3
|
For X and Z values this acts just like
MMBAverage
, but Y values are added together instead of averaged and the total is used as the surface point Y position.
|
This property holds whether column categories are generated automatically.
當設為
true
, the mapping ignores any explicitly set column categories and overwrites them with automatically generated ones whenever the data from the model is resolved. Defaults to
true
.
訪問函數:
| bool | autoColumnCategories () const |
| void | setAutoColumnCategories (bool enable ) |
通知程序信號:
| void | autoColumnCategoriesChanged (bool enable ) |
This property holds whether row categories are generated automatically.
當設為
true
, the mapping ignores any explicitly set row categories and overwrites them with automatically generated ones whenever the data from the model is resolved. Defaults to
true
.
訪問函數:
| bool | autoRowCategories () const |
| void | setAutoRowCategories (bool enable ) |
通知程序信號:
| void | autoRowCategoriesChanged (bool enable ) |
This property holds the column categories for the mapping.
訪問函數:
| QStringList | columnCategories () const |
| void | setColumnCategories (const QStringList & categories ) |
通知程序信號:
| void | columnCategoriesChanged () |
This property holds the item model role to map to the column category.
In addition to defining which column the data belongs to, the value indicated by the column role is also set as the X-coordinate value of QSurfaceDataItem when model data is resolved, unless a separate x position role is also defined.
訪問函數:
| QString | columnRole () const |
| void | setColumnRole (const QString & role ) |
通知程序信號:
| void | columnRoleChanged (const QString & role ) |
This property holds whether a search and replace is done on the value mapped by the column role before it is used as a column category.
This property specifies the regular expression to find the portion of the mapped value to replace and the columnRoleReplace property contains the replacement string.
訪問函數:
| QRegExp | columnRolePattern () const |
| void | setColumnRolePattern (const QRegExp & pattern ) |
通知程序信號:
| void | columnRolePatternChanged (const QRegExp & pattern ) |
另請參閱 columnRole and columnRoleReplace .
This property holds the replace content to be used in conjunction with a column role pattern.
Defaults to an empty string. For more information on how the search and replace using regular expressions works, see the QString::replace (const QRegExp &rx, const QString &after) function documentation.
訪問函數:
| QString | columnRoleReplace () const |
| void | setColumnRoleReplace (const QString & replace ) |
通知程序信號:
| void | columnRoleReplaceChanged (const QString & replace ) |
另請參閱 columnRole and columnRolePattern .
This property holds the item model used as a data source for the 3D surface.
訪問函數:
| QAbstractItemModel * | itemModel () const |
| void | setItemModel (QAbstractItemModel * itemModel ) |
通知程序信號:
| void | itemModelChanged (const QAbstractItemModel * itemModel ) |
How multiple matches for each row/column combination are handled.
默認為 MMBLast .
For example, you might have an item model with timestamped data taken at irregular intervals and you want to visualize an average position of data items on each hour with a surface graph. This can be done by specifying row and column categories so that each surface point represents an hour, and setting this property to MMBAverage .
訪問函數:
| MultiMatchBehavior | multiMatchBehavior () const |
| void | setMultiMatchBehavior (MultiMatchBehavior behavior ) |
通知程序信號:
| void | multiMatchBehaviorChanged (MultiMatchBehavior behavior ) |
This property holds the row categories for the mapping.
訪問函數:
| QStringList | rowCategories () const |
| void | setRowCategories (const QStringList & categories ) |
通知程序信號:
| void | rowCategoriesChanged () |
This property holds the item model role to map to the row category.
In addition to defining which row the data belongs to, the value indicated by the row role is also set as the Z-coordinate value of QSurfaceDataItem when model data is resolved, unless a separate z position role is also defined.
訪問函數:
| QString | rowRole () const |
| void | setRowRole (const QString & role ) |
通知程序信號:
| void | rowRoleChanged (const QString & role ) |
This property holds whether a search and replace is performed on the value mapped by the row role before it is used as a row category.
This property specifies the regular expression to find the portion of the mapped value to replace and the rowRoleReplace property contains the replacement string.
訪問函數:
| QRegExp | rowRolePattern () const |
| void | setRowRolePattern (const QRegExp & pattern ) |
通知程序信號:
| void | rowRolePatternChanged (const QRegExp & pattern ) |
另請參閱 rowRole and rowRoleReplace .
This property holds the replace content to be used in conjunction with the row role pattern.
Defaults to an empty string. For more information on how the search and replace using regular expressions works, see QString::replace (const QRegExp &rx, const QString &after) function documentation.
訪問函數:
| QString | rowRoleReplace () const |
| void | setRowRoleReplace (const QString & replace ) |
通知程序信號:
| void | rowRoleReplaceChanged (const QString & replace ) |
另請參閱 rowRole and rowRolePattern .
This property holds whether row and column roles and categories are used for mapping.
當設為
true
, the mapping ignores row and column roles and categories, and uses the rows and columns from the model instead. Defaults to
false
.
訪問函數:
| bool | useModelCategories () const |
| void | setUseModelCategories (bool enable ) |
通知程序信號:
| void | useModelCategoriesChanged (bool enable ) |
This property holds the item model role to map to the X position.
If this role is not defined, columnRole is used to determine the X-coordinate value of the resolved QSurfaceDataItem 對象。
訪問函數:
| QString | xPosRole () const |
| void | setXPosRole (const QString & role ) |
通知程序信號:
| void | xPosRoleChanged (const QString & role ) |
This property holds whether a search and replace is done on the value mapped by the x position role before it is used as an item position value.
This property specifies the regular expression to find the portion of the mapped value to replace and the xPosRoleReplace property contains the replacement string.
訪問函數:
| QRegExp | xPosRolePattern () const |
| void | setXPosRolePattern (const QRegExp & pattern ) |
通知程序信號:
| void | xPosRolePatternChanged (const QRegExp & pattern ) |
另請參閱 xPosRole and xPosRoleReplace .
This property holds the replace content to be used in conjunction with an x position role pattern.
Defaults to an empty string. For more information on how the search and replace using regular expressions works, see the QString::replace (const QRegExp &rx, const QString &after) function documentation.
訪問函數:
| QString | xPosRoleReplace () const |
| void | setXPosRoleReplace (const QString & replace ) |
通知程序信號:
| void | xPosRoleReplaceChanged (const QString & replace ) |
另請參閱 xPosRole and xPosRolePattern .
This property holds the item model role to map to the Y position.
訪問函數:
| QString | yPosRole () const |
| void | setYPosRole (const QString & role ) |
通知程序信號:
| void | yPosRoleChanged (const QString & role ) |
This property holds whether a search and replace is done on the value mapped by the y position role before it is used as an item position value.
This property specifies the regular expression to find the portion of the mapped value to replace and the yPosRoleReplace property contains the replacement string.
訪問函數:
| QRegExp | yPosRolePattern () const |
| void | setYPosRolePattern (const QRegExp & pattern ) |
通知程序信號:
| void | yPosRolePatternChanged (const QRegExp & pattern ) |
另請參閱 yPosRole and yPosRoleReplace .
This property holds the replace content to be used in conjunction with an y position role pattern.
Defaults to an empty string. For more information on how the search and replace using regular expressions works, see the QString::replace (const QRegExp &rx, const QString &after) function documentation.
訪問函數:
| QString | yPosRoleReplace () const |
| void | setYPosRoleReplace (const QString & replace ) |
通知程序信號:
| void | yPosRoleReplaceChanged (const QString & replace ) |
另請參閱 yPosRole and yPosRolePattern .
This property holds the item model role to map to the Z position.
If this role is not defined, rowRole is used to determine the Z-coordinate value of resolved QSurfaceDataItem 對象。
訪問函數:
| QString | zPosRole () const |
| void | setZPosRole (const QString & role ) |
通知程序信號:
| void | zPosRoleChanged (const QString & role ) |
This property holds whether a search and replace is done on the value mapped by the z position role before it is used as an item position value.
This property specifies the regular expression to find the portion of the mapped value to replace and the zPosRoleReplace property contains the replacement string.
訪問函數:
| QRegExp | zPosRolePattern () const |
| void | setZPosRolePattern (const QRegExp & pattern ) |
通知程序信號:
| void | zPosRolePatternChanged (const QRegExp & pattern ) |
另請參閱 zPosRole and zPosRoleReplace .
This property holds the replace content to be used in conjunction with a z position role pattern.
Defaults to an empty string. For more information on how the search and replace using regular expressions works, see the QString::replace (const QRegExp &rx, const QString &after) function documentation.
訪問函數:
| QString | zPosRoleReplace () const |
| void | setZPosRoleReplace (const QString & replace ) |
通知程序信號:
| void | zPosRoleReplaceChanged (const QString & replace ) |
另請參閱 zPosRole and zPosRolePattern .
構造 QItemModelSurfaceDataProxy with optional parent .
構造 QItemModelSurfaceDataProxy with itemModel 和可選 parent . Proxy doesn't take ownership of the itemModel , as typically item models are owned by other controls.
構造
QItemModelSurfaceDataProxy
with
itemModel
和可選
parent
. Proxy doesn't take ownership of the
itemModel
, as typically item models are owned by other controls. The
yPosRole
role is set to
yPosRole
. This constructor is meant to be used with models that have data properly sorted in rows and columns already, so it also sets
useModelCategories
特性到
true
.
構造 QItemModelSurfaceDataProxy with itemModel 和可選 parent . Proxy doesn't take ownership of the itemModel , as typically item models are owned by other controls. The role mappings are set with rowRole , columnRole ,和 yPosRole 。 zPosRole 和 xPosRole are set to rowRole and columnRole ,分彆。
構造 QItemModelSurfaceDataProxy with itemModel 和可選 parent . Proxy doesn't take ownership of the itemModel , as typically item models are owned by other controls. The role mappings are set with rowRole , columnRole , xPosRole , yPosRole ,和 zPosRole .
構造 QItemModelSurfaceDataProxy with itemModel 和可選 parent . Proxy doesn't take ownership of the itemModel , as typically item models are owned by other controls. The role mappings are set with rowRole , columnRole ,和 yPosRole 。 zPosRole 和 xPosRole are set to rowRole and columnRole , respectively. Row and column categories are set with rowCategories and columnCategories . This constructor also sets autoRowCategories and autoColumnCategories 為 false。
構造 QItemModelSurfaceDataProxy with itemModel 和可選 parent . Proxy doesn't take ownership of the itemModel , as typically item models are owned by other controls. The role mappings are set with rowRole , columnRole , xPosRole , yPosRole ,和 zPosRole . Row and column categories are set with rowCategories and columnCategories . This constructor also sets autoRowCategories and autoColumnCategories 為 false。
[虛擬]
QItemModelSurfaceDataProxy::
~QItemModelSurfaceDataProxy
()
銷毀 QItemModelSurfaceDataProxy .
Returns the index of the specified category in the column categories list. If the category is not found, -1 is returned.
注意: If the automatic column categories generation is in use, this method will not return a valid index before the data in the model is resolved for the first time.
變化 rowRole , columnRole , xPosRole , yPosRole , zPosRole , rowCategories and columnCategories to the mapping.
Returns the index of the specified category in the row categories list. If the row categories list is empty, -1 is returned.
注意: If the automatic row categories generation is in use, this method will not return a valid index before the data in the model is resolved for the first time.
Sets the item model to itemModel . Does not take ownership of the model, but does connect to it to listen for changes.
注意: setter 函數對於特性 itemModel .
另請參閱 itemModel ().