qstandarditemmodel.h

来自「QT 开发环境里面一个很重要的文件」· C头文件 代码 · 共 422 行

H
422
字号
/******************************************************************************** Copyright (C) 1992-2006 Trolltech ASA. All rights reserved.**** This file is part of the QtGui module of the Qt Toolkit.**** This file may be used under the terms of the GNU General Public** License version 2.0 as published by the Free Software Foundation** and appearing in the file LICENSE.GPL included in the packaging of** this file.  Please review the following information to ensure GNU** General Public Licensing requirements will be met:** http://www.trolltech.com/products/qt/opensource.html**** If you are unsure which license is appropriate for your use, please** review the following information:** http://www.trolltech.com/products/qt/licensing.html or contact the** sales department at sales@trolltech.com.**** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.******************************************************************************/#ifndef QSTANDARDITEMMODEL_H#define QSTANDARDITEMMODEL_H#include <QtCore/qabstractitemmodel.h>#include <QtGui/qbrush.h>#include <QtGui/qfont.h>#include <QtGui/qicon.h>#ifndef QT_NO_DATASTREAM#include <QtCore/qdatastream.h>#endifQT_BEGIN_HEADERQT_MODULE(Gui)#ifndef QT_NO_STANDARDITEMMODELtemplate <class T> class QList;class QStandardItemModel;class QStandardItemPrivate;class Q_GUI_EXPORT QStandardItem{public:    QStandardItem();    QStandardItem(const QString &text);    QStandardItem(const QIcon &icon, const QString &text);    QStandardItem(int rows, int columns = 1);    virtual ~QStandardItem();    virtual QVariant data(int role = Qt::UserRole + 1) const;    virtual void setData(const QVariant &value, int role = Qt::UserRole + 1);    inline QString text() const {        return qvariant_cast<QString>(data(Qt::DisplayRole));    }    inline void setText(const QString &text);    inline QIcon icon() const {        return qvariant_cast<QIcon>(data(Qt::DecorationRole));    }    inline void setIcon(const QIcon &icon);#ifndef QT_NO_TOOLTIP    inline QString toolTip() const {        return qvariant_cast<QString>(data(Qt::ToolTipRole));    }    inline void setToolTip(const QString &toolTip);#endif#ifndef QT_NO_STATUSTIP    inline QString statusTip() const {        return qvariant_cast<QString>(data(Qt::StatusTipRole));    }    inline void setStatusTip(const QString &statusTip);#endif#ifndef QT_NO_WHATSTHIS    inline QString whatsThis() const {        return qvariant_cast<QString>(data(Qt::WhatsThisRole));    }    inline void setWhatsThis(const QString &whatsThis);#endif    inline QSize sizeHint() const {        return qvariant_cast<QSize>(data(Qt::SizeHintRole));    }    inline void setSizeHint(const QSize &sizeHint);    inline QFont font() const {        return qvariant_cast<QFont>(data(Qt::FontRole));    }    inline void setFont(const QFont &font);    inline Qt::Alignment textAlignment() const {        return Qt::Alignment(qvariant_cast<int>(data(Qt::TextAlignmentRole)));    }    inline void setTextAlignment(Qt::Alignment textAlignment);    inline QBrush background() const {        return qvariant_cast<QBrush>(data(Qt::BackgroundRole));    }    inline void setBackground(const QBrush &brush);    inline QBrush foreground() const {        return qvariant_cast<QBrush>(data(Qt::ForegroundRole));    }    inline void setForeground(const QBrush &brush);    inline Qt::CheckState checkState() const {        return Qt::CheckState(qvariant_cast<int>(data(Qt::CheckStateRole)));    }    inline void setCheckState(Qt::CheckState checkState);    inline QString accessibleText() const {        return qvariant_cast<QString>(data(Qt::AccessibleTextRole));    }    inline void setAccessibleText(const QString &accessibleText);    inline QString accessibleDescription() const {        return qvariant_cast<QString>(data(Qt::AccessibleDescriptionRole));    }    inline void setAccessibleDescription(const QString &accessibleDescription);    Qt::ItemFlags flags() const;    void setFlags(Qt::ItemFlags flags);    inline bool isEnabled() const {        return (flags() & Qt::ItemIsEnabled) != 0;    }    void setEnabled(bool enabled);    inline bool isEditable() const {        return (flags() & Qt::ItemIsEditable) != 0;    }    void setEditable(bool editable);    inline bool isSelectable() const {        return (flags() & Qt::ItemIsSelectable) != 0;    }    void setSelectable(bool selectable);    inline bool isCheckable() const {        return (flags() & Qt::ItemIsUserCheckable) != 0;    }    void setCheckable(bool checkable);    inline bool isTristate() const {        return (flags() & Qt::ItemIsTristate) != 0;    }    void setTristate(bool tristate);    inline bool isDragEnabled() const {        return (flags() & Qt::ItemIsDragEnabled) != 0;    }    void setDragEnabled(bool dragEnabled);    inline bool isDropEnabled() const {        return (flags() & Qt::ItemIsDropEnabled) != 0;    }    void setDropEnabled(bool dropEnabled);    QStandardItem *parent() const;    int row() const;    int column() const;    QModelIndex index() const;    QStandardItemModel *model() const;    int rowCount() const;    void setRowCount(int rows);    int columnCount() const;    void setColumnCount(int columns);    bool hasChildren() const;    QStandardItem *child(int row, int column = 0) const;    void setChild(int row, int column, QStandardItem *item);    inline void setChild(int row, QStandardItem *item);    void insertRow(int row, const QList<QStandardItem*> &items);    void insertColumn(int column, const QList<QStandardItem*> &items);    void insertRows(int row, int count);    void insertColumns(int column, int count);    void removeRow(int row);    void removeColumn(int column);    void removeRows(int row, int count);    void removeColumns(int column, int count);    inline void appendRow(const QList<QStandardItem*> &items);    inline void appendColumn(const QList<QStandardItem*> &items);    inline void insertRow(int row, QStandardItem *item);    inline void appendRow(QStandardItem *item);    QStandardItem *takeChild(int row, int column = 0);    QList<QStandardItem*> takeRow(int row);    QList<QStandardItem*> takeColumn(int column);    void sortChildren(int column, Qt::SortOrder order = Qt::AscendingOrder);    virtual QStandardItem *clone() const;    enum ItemType { Type = 0, UserType = 1000 };    virtual int type() const;#ifndef QT_NO_DATASTREAM    virtual void read(QDataStream &in);    virtual void write(QDataStream &out) const;#endif    virtual bool operator<(const QStandardItem &other) const;protected:    QStandardItem(const QStandardItem &other);    QStandardItem(QStandardItemPrivate &dd);    QStandardItem &operator=(const QStandardItem &other);    QStandardItemPrivate *d_ptr;private:    Q_DECLARE_PRIVATE(QStandardItem)    friend class QStandardItemModelPrivate;    friend class QStandardItemModel;};inline void QStandardItem::setText(const QString &atext){ setData(atext, Qt::DisplayRole); }inline void QStandardItem::setIcon(const QIcon &aicon){ setData(aicon, Qt::DecorationRole); }#ifndef QT_NO_TOOLTIPinline void QStandardItem::setToolTip(const QString &atoolTip){ setData(atoolTip, Qt::ToolTipRole); }#endif#ifndef QT_NO_STATUSTIPinline void QStandardItem::setStatusTip(const QString &astatusTip){ setData(astatusTip, Qt::StatusTipRole); }#endif#ifndef QT_NO_WHATSTHISinline void QStandardItem::setWhatsThis(const QString &awhatsThis){ setData(awhatsThis, Qt::WhatsThisRole); }#endifinline void QStandardItem::setSizeHint(const QSize &asizeHint){ setData(asizeHint, Qt::SizeHintRole); }inline void QStandardItem::setFont(const QFont &afont){ setData(afont, Qt::FontRole); }inline void QStandardItem::setTextAlignment(Qt::Alignment atextAlignment){ setData(int(atextAlignment), Qt::TextAlignmentRole); }inline void QStandardItem::setBackground(const QBrush &abrush){ setData(abrush, Qt::BackgroundRole); }inline void QStandardItem::setForeground(const QBrush &abrush){ setData(abrush, Qt::ForegroundRole); }inline void QStandardItem::setCheckState(Qt::CheckState acheckState){ setData(acheckState, Qt::CheckStateRole); }inline void QStandardItem::setAccessibleText(const QString &aaccessibleText){ setData(aaccessibleText, Qt::AccessibleTextRole); }inline void QStandardItem::setAccessibleDescription(const QString &aaccessibleDescription){ setData(aaccessibleDescription, Qt::AccessibleDescriptionRole); }inline void QStandardItem::setChild(int arow, QStandardItem *aitem){ setChild(arow, 0, aitem); }inline void QStandardItem::appendRow(const QList<QStandardItem*> &aitems){ insertRow(rowCount(), aitems); }inline void QStandardItem::appendColumn(const QList<QStandardItem*> &aitems){ insertColumn(columnCount(), aitems); }inline void QStandardItem::insertRow(int arow, QStandardItem *aitem){ insertRow(arow, QList<QStandardItem*>() << aitem); }inline void QStandardItem::appendRow(QStandardItem *aitem){ insertRow(rowCount(), aitem); }class QStandardItemModelPrivate;class Q_GUI_EXPORT QStandardItemModel : public QAbstractItemModel{    Q_OBJECT    Q_PROPERTY(int sortRole READ sortRole WRITE setSortRole)public:    explicit QStandardItemModel(QObject *parent = 0);    QStandardItemModel(int rows, int columns, QObject *parent = 0);    ~QStandardItemModel();    QModelIndex index(int row, int column, const QModelIndex &parent = QModelIndex()) const;    QModelIndex parent(const QModelIndex &child) const;    int rowCount(const QModelIndex &parent = QModelIndex()) const;    int columnCount(const QModelIndex &parent = QModelIndex()) const;    bool hasChildren(const QModelIndex &parent = QModelIndex()) const;    QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const;    bool setData(const QModelIndex &index, const QVariant &value, int role = Qt::EditRole);    QVariant headerData(int section, Qt::Orientation orientation,                        int role = Qt::DisplayRole) const;    bool setHeaderData(int section, Qt::Orientation orientation, const QVariant &value,                       int role = Qt::EditRole);    bool insertRows(int row, int count, const QModelIndex &parent = QModelIndex());    bool insertColumns(int column, int count, const QModelIndex &parent = QModelIndex());    bool removeRows(int row, int count, const QModelIndex &parent = QModelIndex());    bool removeColumns(int column, int count, const QModelIndex &parent = QModelIndex());    Qt::ItemFlags flags(const QModelIndex &index) const;    Qt::DropActions supportedDropActions() const;    QMap<int, QVariant> itemData(const QModelIndex &index) const;    bool setItemData(const QModelIndex &index, const QMap<int, QVariant> &roles);    void clear();#ifdef Q_NO_USING_KEYWORD    inline QObject *parent() const { return QObject::parent(); }#else    using QObject::parent;#endif    void sort(int column, Qt::SortOrder order = Qt::AscendingOrder);    QStandardItem *itemFromIndex(const QModelIndex &index) const;    QModelIndex indexFromItem(const QStandardItem *item) const;    QStandardItem *item(int row, int column = 0) const;    void setItem(int row, int column, QStandardItem *item);    inline void setItem(int row, QStandardItem *item);    QStandardItem *invisibleRootItem() const;    QStandardItem *horizontalHeaderItem(int column) const;    void setHorizontalHeaderItem(int column, QStandardItem *item);    QStandardItem *verticalHeaderItem(int row) const;    void setVerticalHeaderItem(int row, QStandardItem *item);    void setHorizontalHeaderLabels(const QStringList &labels);    void setVerticalHeaderLabels(const QStringList &labels);    void setRowCount(int rows);    void setColumnCount(int columns);    void appendRow(const QList<QStandardItem*> &items);    void appendColumn(const QList<QStandardItem*> &items);    inline void appendRow(QStandardItem *item);    void insertRow(int row, const QList<QStandardItem*> &items);    void insertColumn(int column, const QList<QStandardItem*> &items);    inline void insertRow(int row, QStandardItem *item);    inline bool insertRow(int row, const QModelIndex &parent = QModelIndex());    inline bool insertColumn(int column, const QModelIndex &parent = QModelIndex());    QStandardItem *takeItem(int row, int column = 0);    QList<QStandardItem*> takeRow(int row);    QList<QStandardItem*> takeColumn(int column);    QStandardItem *takeHorizontalHeaderItem(int column);    QStandardItem *takeVerticalHeaderItem(int row);    const QStandardItem *itemPrototype() const;    void setItemPrototype(const QStandardItem *item);    QList<QStandardItem*> findItems(const QString &text,                                    Qt::MatchFlags flags = Qt::MatchExactly,                                    int column = 0) const;    int sortRole() const;    void setSortRole(int role);Q_SIGNALS:    void itemChanged(QStandardItem *item);protected:    QStandardItemModel(QStandardItemModelPrivate &dd, QObject *parent = 0);private:    friend class QStandardItemPrivate;    friend class QStandardItem;    Q_DISABLE_COPY(QStandardItemModel)    Q_DECLARE_PRIVATE(QStandardItemModel)    Q_PRIVATE_SLOT(d_func(), void _q_emitItemChanged(const QModelIndex &topLeft,                                                     const QModelIndex &bottomRight))};inline void QStandardItemModel::setItem(int arow, QStandardItem *aitem){ setItem(arow, 0, aitem); }inline void QStandardItemModel::appendRow(QStandardItem *aitem){ appendRow(QList<QStandardItem*>() << aitem); }inline void QStandardItemModel::insertRow(int arow, QStandardItem *aitem){ insertRow(arow, QList<QStandardItem*>() << aitem); }inline bool QStandardItemModel::insertRow(int arow, const QModelIndex &aparent){ return QAbstractItemModel::insertRow(arow, aparent); }inline bool QStandardItemModel::insertColumn(int acolumn, const QModelIndex &aparent){ return QAbstractItemModel::insertColumn(acolumn, aparent); }#ifndef QT_NO_DATASTREAMQ_GUI_EXPORT QDataStream &operator>>(QDataStream &in, QStandardItem &item);Q_GUI_EXPORT QDataStream &operator<<(QDataStream &out, const QStandardItem &item);#endif#endif // QT_NO_STANDARDITEMMODELQT_END_HEADER#endif //QSTANDARDITEMMODEL_H

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?