このページでは

QStringListModel Class

QStringListModel クラスは、ビューに文字列を供給するモデルを提供します。詳細...

ヘッダー: #include <QStringListModel>
CMake: find_package(Qt6 REQUIRED COMPONENTS Core)
target_link_libraries(mytarget PRIVATE Qt6::Core)
qmake: QT += core
継承元: QAbstractListModel
継承元:

QHelpIndexModel

パブリック関数

QStringListModel(QObject *parent = nullptr)
QStringListModel(const QStringList &strings, QObject *parent = nullptr)
void setStringList(const QStringList &strings)
QStringList stringList() const

再実装されたパブリック関数

(since 6.0) virtual bool clearItemData(const QModelIndex &index) override
virtual QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const override
virtual Qt::ItemFlags flags(const QModelIndex &index) const override
virtual bool insertRows(int row, int count, const QModelIndex &parent = QModelIndex()) override
virtual QMap<int, QVariant> itemData(const QModelIndex &index) const override
virtual bool moveRows(const QModelIndex &sourceParent, int sourceRow, int count, const QModelIndex &destinationParent, int destinationChild) override
virtual bool removeRows(int row, int count, const QModelIndex &parent = QModelIndex()) override
virtual int rowCount(const QModelIndex &parent = QModelIndex()) const override
virtual bool setData(const QModelIndex &index, const QVariant &value, int role = Qt::EditRole) override
virtual bool setItemData(const QModelIndex &index, const QMap<int, QVariant> &roles) override
virtual QModelIndex sibling(int row, int column, const QModelIndex &idx) const override
virtual void sort(int column, Qt::SortOrder order = Qt::AscendingOrder) override
virtual Qt::DropActions supportedDropActions() const override

詳細な説明

QStringListModel は、QListView やQComboBox などのビューウィジェットに複数の文字列を表示する必要がある単純なケースで使用できる、編集可能なモデルです。

このモデルは、編集可能なモデルのすべての標準機能を提供し、文字列リスト内のデータを、1 列、行数がリスト内の項目数と同じモデルとして表現します。

項目に対応するモデルのインデックスは `index()` 関数で取得し、項目のフラグは `flags()` で取得します。項目のデータは `data()` 関数で読み込み、`setData()` で書き込みます。行数(および文字列リスト内の項目数)は `rowCount()` 関数で確認できます。

このモデルは、既存の文字列リストを用いて構築することも、setStringList()という便利関数を使用して後から文字列を設定することも可能です。また、insertRows()関数を使って通常の方法で文字列を挿入したり、removeRows()関数を使って削除したりすることもできます。文字列リストの内容は、stringList()という便利関数で取得できます。

QStringListModelの使用例:

    QStringListModel *model = new QStringListModel();
    QStringList list;
    list << "a" << "b" << "c";
    model->setStringList(list);

関連項目: QAbstractListModel 、QAbstractItemModel 、QRangeModel 、およびモデルクラス。

メンバ関数のドキュメント

[explicit] QStringListModel::QStringListModel(QObject *parent = nullptr)

指定されたparent を使用して、文字列リストモデルを構築します。

[explicit] QStringListModel::QStringListModel(const QStringList &strings, QObject *parent = nullptr)

指定されたstrings と、与えられたparent を含む文字列リストモデルを構築します。

[override virtual, since 6.0] bool QStringListModel::clearItemData(const QModelIndex &index)

QAbstractItemModel::clearItemData(const QModelIndex &index) を再実装しています。

この関数は Qt 6.0 で導入されました。

[override virtual] QVariant QStringListModel::data(const QModelIndex &index, int role = Qt::DisplayRole) const

QAbstractItemModel::data(const QModelIndex &index, int role) const を再実装します。

指定された `role` に対応するデータを、指定された `index` を持つ項目から取得します。

ビューが無効なインデックスを要求した場合、無効なバリアントが返されます。

setData()も参照してください 。

[override virtual] Qt::ItemFlags QStringListModel::flags(const QModelIndex &index) const

QAbstractListModel::flags(const QModelIndex &index) const を再実装します。

指定された `index` を持つ項目のフラグを返します。

有効な項目は、enabled、selectable、editable、dragEnabled、dropEnabled です。

QAbstractItemModel::flags()も参照してください 。

[override virtual] bool QStringListModel::insertRows(int row, int count, const QModelIndex &parent = QModelIndex())

QAbstractItemModel::insertRows(int row, int count, const QModelIndex &parent) を再実装します。

指定されたrow を起点として、count の行をモデルに挿入します。

行のparent インデックスはオプションであり、QAbstractItemModel との整合性を保つためにのみ使用されます。デフォルトでは、インデックスとしてnullが指定され、行がモデルの最上位に挿入されることを示します。

挿入が成功した場合は、true を返します。

QAbstractItemModel::insertRows()も参照してください 。

[override virtual] QMap<int, QVariant> QStringListModel::itemData(const QModelIndex &index) const

QAbstractItemModel::itemData(const QModelIndex &index) const の再実装です。

setItemData()も参照してください 。

[override virtual] bool QStringListModel::moveRows(const QModelIndex &sourceParent, int sourceRow, int count, const QModelIndex &destinationParent, int destinationChild)

QAbstractItemModel::moveRows (const QModelIndex &sourceParent, int sourceRow, int count, const QModelIndex &destinationParent, int destinationChild)を再実装します。

[override virtual] bool QStringListModel::removeRows(int row, int count, const QModelIndex &parent = QModelIndex())

QAbstractItemModel::removeRows(int row, int count, const QModelIndex &parent) を再実装します。

指定されたrow を起点として、モデルからcount の行を削除します。

行のparent インデックスはオプションであり、QAbstractItemModel との整合性を保つためにのみ使用されます。デフォルトでは、nullインデックスが指定され、モデルの最上位レベルから行が削除されることを示します。

行の削除が成功した場合は、true を返します。

QAbstractItemModel::removeRows()も参照してください 。

[override virtual] int QStringListModel::rowCount(const QModelIndex &parent = QModelIndex()) const

QAbstractItemModel::rowCount(const QModelIndex &parent) const を再実装します。

モデル内の行数を返します。この値は、モデルの内部文字列リスト内の項目数に対応します。

オプションの引数 `parent ` は、ほとんどのモデルにおいて、カウント対象の行の親を指定するために使用されます。有効な親が指定された場合、これはリストとなるため、結果は常に 0 になります。

insertRows()、removeRows()、およびQAbstractItemModel::rowCount()も参照してください 。

[override virtual] bool QStringListModel::setData(const QModelIndex &index, const QVariant &value, int role = Qt::EditRole)

QAbstractItemModel::setData(const QModelIndex &index, const QVariant &value, int role) を再実装します。

モデル内の指定されたindex を持つアイテムの、指定されたrole のデータを、渡されたvalue に設定します。

アイテムが変更されると、dataChanged() シグナルが発信されます。dataChanged() シグナルを発信した後、true を返します。

Qt::ItemDataRole およびdata()も参照してください 。

[override virtual] bool QStringListModel::setItemData(const QModelIndex &index, const QMap<int, QVariant> &roles)

QAbstractItemModel::setItemData(const QModelIndex &index, const QMap<int, QVariant> &roles) を再実装します。

roles に `Qt::DisplayRole ` と `Qt::EditRole` の両方が含まれている場合、後者が優先されます

itemData()も参照してください 。

void QStringListModel::setStringList(const QStringList &strings)

モデルの内部文字列リストを `strings` に設定します。モデルは、関連付けられているすべてのビューに対して、基となるデータが変更されたことを通知します。

stringList() およびdataChanged()も参照してください 。

[override virtual] QModelIndex QStringListModel::sibling(int row, int column, const QModelIndex &idx) const

QAbstractListModel::sibling(int row, int column, const QModelIndex &idx) const を再実装します。

[override virtual] void QStringListModel::sort(int column, Qt::SortOrder order = Qt::AscendingOrder)

QAbstractItemModel::sort(int column, Qt::SortOrder order) の再実装です。

QStringList QStringListModel::stringList() const

モデルがデータの保存に使用する文字列リストを返します。

setStringList()も参照してください 。

[override virtual] Qt::DropActions QStringListModel::supportedDropActions() const

QAbstractItemModel::supportedDropActions() const を再実装します。

© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.