|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectcom.trolltech.qt.internal.QSignalEmitterInternal
com.trolltech.qt.QSignalEmitter
com.trolltech.qt.QtJambiObject
com.trolltech.qt.core.QObject
com.trolltech.qt.core.QAbstractItemModel
com.trolltech.qt.gui.QStandardItemModel
public class QStandardItemModel
The QStandardItemModel
class provides a generic model for storing custom data. QStandardItemModel
can be used as a repository for standard Qt data types. It is one of the Model/View Classes and is part of Qt's model/view framework.
QStandardItemModel
provides a classic item-based approach to working with the model. The items in a QStandardItemModel
are provided by QStandardItem
.
QStandardItemModel
implements the QAbstractItemModel
interface, which means that the model can be used to provide data in any view that supports that interface (such as QListView
, QTableView
and QTreeView
, and your own custom views). For performance and flexibility, you may want to subclass QAbstractItemModel
to provide support for different kinds of data repositories. For example, the QDirModel
provides a model interface to the underlying file system.
When you want a list or tree, you typically create an empty QStandardItemModel
and use appendRow()
to add items to the model, and item()
to access an item. If your model represents a table, you typically pass the dimensions of the table to the QStandardItemModel
constructor and use setItem()
to position items into the table. You can also use setRowCount()
and setColumnCount()
to alter the dimensions of the model. To insert items, use insertRow()
or insertColumn()
, and to remove items, use removeRow()
or removeColumn()
.
You can set the header labels of your model with setHorizontalHeaderLabels()
and setVerticalHeaderLabels()
.
You can search for items in the model with findItems()
, and sort the model by calling sort()
.
Call clear()
to remove all items from the model.
An example usage of QStandardItemModel
to create a table:
QStandardItemModel model = new QStandardItemModel(4, 4); for (int row = 0; row < 4; ++row) { for (int column = 0; column < 4; ++column) { QStandardItem tem = new QStandardItem("row " + row +", column " + column); model.setItem(row, column, item); } }An example usage of
QStandardItemModel
to create a tree: QStandardItemModel model = new QStandardItemModel(); QStandardItem parentItem = model.invisibleRootItem(); for (int i = 0; i < 4; ++i) { QStandardItem item = new QStandardItem("item " + i); parentItem.appendRow(item); parentItem = item; }After setting the model on a view, you typically want to react to user actions, such as an item being clicked. Since a
QAbstractItemView
provides QModelIndex-based signals and functions, you need a way to obtain the QStandardItem
that corresponds to a given QModelIndex, and vice versa. itemFromIndex()
and indexFromItem()
provide this mapping. Typical usage of itemFromIndex()
includes obtaining the item at the current index in a view, and obtaining the item that corresponds to an index carried by a QAbstractItemView
signal, such as QAbstractItemView::clicked()
. First you connect the view's signal to a slot in your class: QTreeView treeView = new QTreeView(this); treeView.setModel(myStandardItemModel); treeView.clicked.connect(this, "clicked(QModelIndex)");When you receive the signal, you call
itemFromIndex()
on the given model index to get a pointer to the item: protected void clicked(QModelIndex index) { QStandardItem tem = myStandardItemModel.itemFromIndex(index); // Do stuff with the item ... }Conversely, you must obtain the QModelIndex of an item when you want to invoke a model/view function that takes an index as argument. You can obtain the index either by using the model's
indexFromItem()
function, or, equivalently, by calling QStandardItem::index()
: treeView.scrollTo(item.index());You are, of course, not required to use the item-based approach; you could instead rely entirely on the
QAbstractItemModel
interface when working with the model, or use a combination of the two as appropriate. QStandardItem
, Model/View Programming, QAbstractItemModel
, Simple Tree Model example, and Item View Convenience Classes.
Nested Class Summary |
---|
Nested classes/interfaces inherited from class com.trolltech.qt.QSignalEmitter |
---|
QSignalEmitter.AbstractSignal, QSignalEmitter.Signal0, QSignalEmitter.Signal1, QSignalEmitter.Signal2, QSignalEmitter.Signal3, QSignalEmitter.Signal4, QSignalEmitter.Signal5, QSignalEmitter.Signal6, QSignalEmitter.Signal7, QSignalEmitter.Signal8, QSignalEmitter.Signal9 |
Nested classes/interfaces inherited from class com.trolltech.qt.internal.QSignalEmitterInternal |
---|
com.trolltech.qt.internal.QSignalEmitterInternal.AbstractSignalInternal |
Field Summary | |
---|---|
QSignalEmitter.Signal1 |
itemChanged
This signal takes 1 generic argument(s). |
Fields inherited from class com.trolltech.qt.core.QAbstractItemModel |
---|
dataChanged, headerDataChanged, layoutAboutToBeChanged, layoutChanged |
Fields inherited from class com.trolltech.qt.internal.QSignalEmitterInternal |
---|
currentSender |
Constructor Summary | |
---|---|
QStandardItemModel()
Constructs a new item model with the given parent. |
|
QStandardItemModel(int rows,
int columns)
Constructs a new item model that initially has rows rows and columns columns, and that has the given parent. |
|
QStandardItemModel(int rows,
int columns,
QObject parent)
Constructs a new item model that initially has rows rows and columns columns, and that has the given parent. |
|
QStandardItemModel(QObject parent)
Constructs a new item model with the given parent. |
Method Summary | |
---|---|
void |
appendColumn(java.util.List items)
Appends a column containing items. |
void |
appendRow(java.util.List items)
Appends a row containing items. |
void |
appendRow(QStandardItem item)
When building a list or a tree that has only one column, this function provides a convenient way to append a single new item. |
void |
clear()
Removes all items (including header items) from the model and sets the number of rows and columns to zero. |
java.util.List |
findItems(java.lang.String text)
Returns a list of items that match the given text. |
java.util.List |
findItems(java.lang.String text,
Qt.MatchFlags flags)
Returns a list of items that match the given text, using the given flags, in the given column. |
java.util.List |
findItems(java.lang.String text,
Qt.MatchFlags flags,
int column)
Returns a list of items that match the given text, using the given flags, in the given column. |
QStandardItem |
horizontalHeaderItem(int column)
Returns the horizontal header item for column if one has been set; otherwise returns 0. |
com.trolltech.qt.core.QModelIndex |
indexFromItem(QStandardItem item)
Returns the QModelIndex associated with the given item. |
void |
insertColumn(int column,
java.util.List items)
Inserts a column at column containing items. |
void |
insertRow(int row,
java.util.List items)
Inserts a row at row containing items. |
void |
insertRow(int row,
QStandardItem item)
Inserts a row at row containing item. |
QStandardItem |
invisibleRootItem()
Returns the model's invisible root item. |
QStandardItem |
item(int row)
Returns the item for the given row and column if one has been set; otherwise returns 0. |
QStandardItem |
item(int row,
int column)
Returns the item for the given row and column if one has been set; otherwise returns 0. |
QStandardItem |
itemFromIndex(com.trolltech.qt.core.QModelIndex index)
Returns a pointer to the QStandardItem associated with the given index. |
QStandardItem |
itemPrototype()
Returns the item prototype used by the model. |
void |
setColumnCount(int columns)
Sets the number of columns in this model to columns. |
void |
setHorizontalHeaderItem(int column,
QStandardItem item)
Sets the horizontal header item for column to item. |
void |
setHorizontalHeaderLabels(java.util.List labels)
Sets the horizontal header labels using labels. |
void |
setItem(int row,
int column,
QStandardItem item)
Sets the item for the given row and column to item. |
void |
setItem(int row,
QStandardItem item)
This is an overloaded method provided for convenience. |
void |
setItemPrototype(QStandardItem item)
Sets the item prototype for the model to the specified item. |
void |
setRowCount(int rows)
Sets the number of rows in this model to rows. |
void |
setSortRole(int role)
This property holds the item role that is used to query the model's data when sorting items. |
void |
setVerticalHeaderItem(int row,
QStandardItem item)
Sets the vertical header item for row to item. |
void |
setVerticalHeaderLabels(java.util.List labels)
Sets the vertical header labels using labels. |
int |
sortRole()
This property holds the item role that is used to query the model's data when sorting items. |
java.util.List |
takeColumn(int column)
Removes the given column without deleting the column items, and returns a list of pointers to the removed items. |
QStandardItem |
takeHorizontalHeaderItem(int column)
Removes the horizontal header item at column from the header without deleting it, and returns a pointer to the item. |
QStandardItem |
takeItem(int row)
Removes the item at (row, column) without deleting it. |
QStandardItem |
takeItem(int row,
int column)
Removes the item at (row, column) without deleting it. |
java.util.List |
takeRow(int row)
Removes the given row without deleting the row items, and returns a list of pointers to the removed items. |
QStandardItem |
takeVerticalHeaderItem(int row)
Removes the vertical header item at row from the header without deleting it, and returns a pointer to the item. |
QStandardItem |
verticalHeaderItem(int row)
Returns the vertical header item for row row if one has been set; otherwise returns 0. |
Methods inherited from class com.trolltech.qt.core.QObject |
---|
childEvent, children, connectSlotsByName, customEvent, disposeLater, dumpObjectInfo, dumpObjectTree, dynamicPropertyNames, event, eventFilter, findChild, findChild, findChild, findChildren, findChildren, findChildren, findChildren, indexOfProperty, installEventFilter, isWidgetType, killTimer, moveToThread, objectName, parent, properties, property, removeEventFilter, setObjectName, setParent, setProperty, startTimer, timerEvent, toString, userProperty |
Methods inherited from class com.trolltech.qt.QtJambiObject |
---|
dispose, disposed, equals, finalize, reassignNativeResources, tr, tr, tr |
Methods inherited from class com.trolltech.qt.QSignalEmitter |
---|
blockSignals, disconnect, disconnect, signalsBlocked, signalSender, thread |
Methods inherited from class com.trolltech.qt.internal.QSignalEmitterInternal |
---|
__qt_signalInitialization |
Methods inherited from class java.lang.Object |
---|
clone, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Methods inherited from interface com.trolltech.qt.QtJambiInterface |
---|
disableGarbageCollection, nativeId, nativePointer, reenableGarbageCollection, setJavaOwnership |
Field Detail |
---|
public final QSignalEmitter.Signal1 itemChanged
This signal takes 1 generic argument(s). We list their type and the name they go by in the description of this signal. <com.trolltech.qt.gui.QStandardItem(named: item)>:
This signal is emitted whenever the data of item has changed.
Constructor Detail |
---|
public QStandardItemModel()
public QStandardItemModel(QObject parent)
public QStandardItemModel(int rows, int columns)
public QStandardItemModel(int rows, int columns, QObject parent)
Method Detail |
---|
public final void appendColumn(java.util.List items)
insertColumn()
, and appendRow()
.
public final void appendRow(QStandardItem item)
public final void appendRow(java.util.List items)
insertRow()
, and appendColumn()
.
public final void clear()
removeColumns()
, and removeRows()
.
public final java.util.List findItems(java.lang.String text, Qt.MatchFlags flags)
public final java.util.List findItems(java.lang.String text)
public final java.util.List findItems(java.lang.String text, Qt.MatchFlags flags, int column)
public final QStandardItem horizontalHeaderItem(int column)
setHorizontalHeaderItem()
, and verticalHeaderItem()
.
public final com.trolltech.qt.core.QModelIndex indexFromItem(QStandardItem item)
Use this function when you want to perform an operation that requires the QModelIndex of the item, such as QAbstractItemView::scrollTo()
. QStandardItem::index()
is provided as convenience; it is equivalent to calling this function.
itemFromIndex()
, and QStandardItem::index()
.
public final void insertColumn(int column, java.util.List items)
takeColumn()
, appendColumn()
, and insertRow()
.
public final void insertRow(int row, QStandardItem item)
When building a list or a tree that has only one column, this function provides a convenient way to append a single new item.
public final void insertRow(int row, java.util.List items)
takeRow()
, appendRow()
, and insertColumn()
.
public final QStandardItem invisibleRootItem()
The invisible root item provides access to the model's top-level items through the QStandardItem
API, making it possible to write functions that can treat top-level items and their children in a uniform way; for example, recursive functions involving a tree model.
Note: Calling index()
on the QStandardItem
object retrieved from this function is not valid.
public final QStandardItem item(int row)
setItem()
, takeItem()
, and itemFromIndex()
.
public final QStandardItem item(int row, int column)
setItem()
, takeItem()
, and itemFromIndex()
.
public final QStandardItem itemFromIndex(com.trolltech.qt.core.QModelIndex index)
QStandardItem
associated with the given index. Calling this function is typically the initial step when processing QModelIndex-based signals from a view, such as QAbstractItemView::activated()
. In your slot, you call itemFromIndex()
, with the QModelIndex carried by the signal as argument, to obtain a pointer to the corresponding QStandardItem
.
Note that this function will lazily create an item for the index (using itemPrototype()
), and set it in the parent item's child table, if no item already exists at that index.
If index is an invalid index, this function returns 0.
indexFromItem()
.
public final QStandardItem itemPrototype()
setData()
). setItemPrototype()
.
public final void setColumnCount(int columns)
columnCount()
, the data in the unwanted columns is discarded. setRowCount()
.
public final void setHorizontalHeaderItem(int column, QStandardItem item)
horizontalHeaderItem()
, setHorizontalHeaderLabels()
, and setVerticalHeaderItem()
.
public final void setHorizontalHeaderLabels(java.util.List labels)
setHorizontalHeaderItem()
.
public final void setItem(int row, QStandardItem item)
public final void setItem(int row, int column, QStandardItem item)
item()
.
public final void setItemPrototype(QStandardItem item)
The item prototype acts as a QStandardItem
factory, by relying on the QStandardItem::clone()
function. To provide your own prototype, subclass QStandardItem
, reimplement QStandardItem::clone()
and set the prototype to be an instance of your custom class. Whenever QStandardItemModel
needs to create an item on demand (for instance, when a view or item delegate calls setData()
)), the new items will be instances of your custom class.
itemPrototype()
, and QStandardItem::clone()
.
public final void setRowCount(int rows)
rowCount()
, the data in the unwanted rows is discarded. setColumnCount()
.
public final void setSortRole(int role)
Qt::DisplayRole
. sort()
, and QStandardItem::sortChildren()
.
public final void setVerticalHeaderItem(int row, QStandardItem item)
verticalHeaderItem()
, setVerticalHeaderLabels()
, and setHorizontalHeaderItem()
.
public final void setVerticalHeaderLabels(java.util.List labels)
setVerticalHeaderItem()
.
public final int sortRole()
Qt::DisplayRole
. sort()
, and QStandardItem::sortChildren()
.
public final java.util.List takeColumn(int column)
takeRow()
.
public final QStandardItem takeHorizontalHeaderItem(int column)
horizontalHeaderItem()
, and takeVerticalHeaderItem()
.
public final QStandardItem takeItem(int row)
item()
, takeRow()
, and takeColumn()
.
public final QStandardItem takeItem(int row, int column)
item()
, takeRow()
, and takeColumn()
.
public final java.util.List takeRow(int row)
takeColumn()
.
public final QStandardItem takeVerticalHeaderItem(int row)
verticalHeaderItem()
, and takeHorizontalHeaderItem()
.
public final QStandardItem verticalHeaderItem(int row)
setVerticalHeaderItem()
, and horizontalHeaderItem()
.
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |