QStandardItem类
QStandardItem类提供了一个与QStandardItemModel类一起使用的项。
Header: | #include < QStandardItem> |
---|---|
qmake: | QT += gui |
Inherits: | |
Inherited By: |
详述
项目通常包含文本、图标或复选框。
每个项目都可以有自己的背景刷,这是通过setBackground()函数设置的。使用background()可以找到当前的背景画笔。每个项目的文本标签可以用自己的字体和笔刷呈现。它们由setFont()和setForeground()函数指定,使用font()和foreground()进行读取。
默认情况下,项目是启用的、可编辑的、可选择的、可检查的,并且可以用作拖放操作的源和拖放目标。可以通过调用setFlags()来更改每个项的标志。可检查项可以使用setCheckState()函数进行检查和取消检查。对应的checkState()函数指示当前是否检查该项。
可以通过调用setData()将特定于应用程序的数据存储在项中。
每个项可以有一个包含子项的二维表。这使得构建项目的层次结构成为可能。典型的层次结构是树,在这种情况下,子表是一个只有一列(列表)的表。
子表的维度可以用setRowCount()和setColumnCount()设置。可以使用setChild()将项定位到子表中。获取一个指向带有child()的子条目的指针。还可以使用insertRow()和insertColumn()插入子元素的新行和新列,或者使用appendRow()和appendColumn()追加。在使用追加和插入函数时,子表的维度将根据需要增长。
可以使用removeRow()或takeRow()删除现有的子行;相应地,可以使用removeColumn()或takeColumn()删除列。
可以通过调用sortChildren()对项的子元素进行排序。
子类化
当子类化QStandardItem以提供定制项时,可以为它们定义新的类型,以便与基类区分。应该重新实现type()函数,以返回一个等于或大于UserType的新类型值。
如果您想要执行数据查询的自定义处理和/或控制项数据的表示方式,请重新实现data()和setData()。
如果您希望QStandardItemModel能够按需创建自定义项目类的实例,请重新实现clone()(参见QStandardItemModel::setItemPrototype())。
如果希望控制项如何以序列化形式表示,请重新实现read()和write()。
如果要控制项比较的语义,请重新实现operator<()。operator<()在使用sortChildren()或QStandardItemModel::sort()排序时确定排序顺序。
公共类型
enum ItemType
此枚举描述用于描述标准项的类型。
Constant | Value | Description |
---|---|---|
Type | 0 | 标准项的默认类型。 |
UserType | 1000 | 自定义类型的最小值。UserType以下的值由Qt保留。 |
公共函数
构造析构
- QStandardItem(int rows, int columns = 1)
- QStandardItem(const QIcon &icon, const QString &text)
- QStandardItem(const QString &text)
- QStandardItem()
- virtual ~QStandardItem()
- virtual QStandardItem * clone() const
属性
- virtual int type() const
- QBrush background() const
- void setBackground(const QBrush &brush)
- QBrush foreground() const
- void setForeground(const QBrush &brush)
- QFont font() const
- void setFont(const QFont &font)
- QIcon icon() const
- void setIcon(const QIcon &icon)
- QSize sizeHint() const
- void setSizeHint(const QSize &size)
- QString text() const
- void setText(const QString &text)
- QString statusTip() const
- void setStatusTip(const QString &statusTip)
- Qt::Alignment textAlignment() const
- void setTextAlignment(Qt::Alignment alignment)
- QString toolTip() const
- void setToolTip(const QString &toolTip)
- QString whatsThis() const
- void setWhatsThis(const QString &whatsThis)
- QString accessibleDescription() const
- void setAccessibleDescription(const QString &accessibleDescription)
- QString accessibleText() const
- void setAccessibleText(const QString &accessibleText)
修改Item
- void appendColumn(const QList<QStandardItem *> &items)
- void insertColumn(int column, const QList<QStandardItem *> &items)
- void removeColumn(int column)
- QList<QStandardItem *> takeColumn(int column)
- void insertColumns(int column, int count)
- void removeColumns(int column, int count)
- void appendRow(const QList<QStandardItem *> &items)
- void appendRow(QStandardItem *item)
- void insertRow(int row, const QList<QStandardItem *> &items)
- void insertRow(int row, QStandardItem *item)
- void removeRow(int row)
- QList<QStandardItem *> takeRow(int row)
- void appendRows(const QList<QStandardItem *> &items)
- void insertRows(int row, const QList<QStandardItem *> &items)
- void insertRows(int row, int count)
- void removeRows(int row, int count)
项目状态
- Qt::CheckState checkState() const
- void setCheckState(Qt::CheckState state)
- bool isCheckable() const
- void setCheckable(bool checkable)
- bool isAutoTristate() const
- void setAutoTristate(bool tristate)
- bool isUserTristate() const
- void setUserTristate(bool tristate)
项目之间的关系
- QStandardItem * child(int row, int column = 0) const
- void setChild(int row, int column, QStandardItem *item)
- void setChild(int row, QStandardItem *item)
- QStandardItem * takeChild(int row, int column = 0)
- QStandardItem * parent() const
- bool hasChildren() const
数据
- void clearData()
- virtual QVariant data(int role = Qt::UserRole + 1) const
- virtual void setData(const QVariant &value, int role = Qt::UserRole + 1)
行列
- int column() const
- int row() const
- int columnCount() const
- void setColumnCount(int columns)
- int rowCount() const
- void setRowCount(int rows)
模型和索引
- QModelIndex index() const
- QStandardItemModel * model() const
项目属性标志
- Qt::ItemFlags flags() const
- void setFlags(Qt::ItemFlags flags)
- bool isDragEnabled() const
- void setDragEnabled(bool dragEnabled)
- bool isDropEnabled() const
- void setDropEnabled(bool dropEnabled)
- bool isEditable() const
- void setEditable(bool editable)
- bool isEnabled() const
- void setEnabled(bool enabled)
- bool isSelectable() const
- void setSelectable(bool selectable)
读写
- virtual void read(QDataStream &in)
- virtual void write(QDataStream &out) const
排序
- void sortChildren(int column, Qt::SortOrder order = Qt::AscendingOrder)
- virtual bool operator<(const QStandardItem &other) const
受保护的函数
- QStandardItem(const QStandardItem &other)
- QStandardItem & operator=(const QStandardItem &other)
- void emitDataChanged()
相关的非成员
- QDataStream & operator<<(QDataStream &out, const QStandardItem &item)
- QDataStream & operator>>(QDataStream &in, QStandardItem &item)
和数据序列化相关
参见
- QStandardItemModel
- 项目视图便利类 Item View Convenience Classes
- 模型/视图编程 Model/View Programming