QItemSelectionModel Class
QItemSelectionModel クラスは、ビューの選択された項目を追跡します。詳細...
Header: | #include <QItemSelectionModel> |
CMake: | find_package(Qt6 REQUIRED COMPONENTS Core) target_link_libraries(mytarget PRIVATE Qt6::Core) |
qmake: | QT += core |
Inherits: | QObject |
パブリックな型
enum | SelectionFlag { NoUpdate, Clear, Select, Deselect, Toggle, …, ClearAndSelect } |
flags | SelectionFlags |
プロパティ
- selectedIndexes : const QModelIndexList
パブリック関数
QItemSelectionModel(QAbstractItemModel *model = nullptr) | |
QItemSelectionModel(QAbstractItemModel *model, QObject *parent) | |
virtual | ~QItemSelectionModel() |
bool | columnIntersectsSelection(int column, const QModelIndex &parent = QModelIndex()) const |
QModelIndex | currentIndex() const |
bool | hasSelection() const |
bool | isColumnSelected(int column, const QModelIndex &parent = QModelIndex()) const |
bool | isRowSelected(int row, const QModelIndex &parent = QModelIndex()) const |
bool | isSelected(const QModelIndex &index) const |
QAbstractItemModel * | model() |
const QAbstractItemModel * | model() const |
bool | rowIntersectsSelection(int row, const QModelIndex &parent = QModelIndex()) const |
QModelIndexList | selectedColumns(int row = 0) const |
QModelIndexList | selectedIndexes() const |
QModelIndexList | selectedRows(int column = 0) const |
const QItemSelection | selection() const |
void | setModel(QAbstractItemModel *model) |
パブリックスロット
virtual void | clear() |
virtual void | clearCurrentIndex() |
void | clearSelection() |
virtual void | reset() |
virtual void | select(const QItemSelection &selection, QItemSelectionModel::SelectionFlags command) |
virtual void | select(const QModelIndex &index, QItemSelectionModel::SelectionFlags command) |
virtual void | setCurrentIndex(const QModelIndex &index, QItemSelectionModel::SelectionFlags command) |
シグナル
void | currentChanged(const QModelIndex ¤t, const QModelIndex &previous) |
void | currentColumnChanged(const QModelIndex ¤t, const QModelIndex &previous) |
void | currentRowChanged(const QModelIndex ¤t, const QModelIndex &previous) |
void | modelChanged(QAbstractItemModel *model) |
void | selectionChanged(const QItemSelection &selected, const QItemSelection &deselected) |
保護された関数
void | emitSelectionChanged(const QItemSelection &newSelection, const QItemSelection &oldSelection) |
詳細説明
QItemSelectionModel は、1つのビュー、または同じモデル上の複数のビューで選択された項目を追跡します。また、ビューで現在選択されている項目の追跡も行います。
QItemSelectionModel クラスは、モデル/ビュー・クラスの一つであり、Qt のモデル/ビュー・フレームワークの一部です。
選択された項目は範囲を使って保存されます。選択された項目を変更したい場合は、select ()を使用し、QItemSelection 、またはQModelIndex 、QItemSelectionModel::SelectionFlag 。
QItemSelectionModel は、コミットされた選択項目と、現在の選択項目の一部である項目の両方を扱う、選択項目管理に2つのレイヤー・アプローチを取ります。現在の選択項目は、現在のインタラクティブな選択項目の一部です(ラバーバンド選択やキーボードシフト選択など)。
現在選択されている項目を更新するには、QItemSelectionModel::Current と他のSelectionFlags のビットの OR を使います。QItemSelectionModel::Current コマンドを省略すると、 新しい現在の選択範囲が作成され、 以前の選択範囲が選択範囲全体に追加されます。例えば、selecteditems() は、両方のレイヤーから項目を返します。
注: 5.5以降、model 、hasSelection 、currentIndex はメタ・オブジェクト・プロパティです。
モデル/ビュー・プログラミングおよびQAbstractItemModelも参照してください 。
メンバ型ドキュメント
enum QItemSelectionModel::SelectionFlag
flags QItemSelectionModel::SelectionFlags
この列挙型は、選択モデルが更新される方法を記述します。
定数 | 値 | 説明 |
---|---|---|
QItemSelectionModel::NoUpdate | 0x0000 | 選択は行われません。 |
QItemSelectionModel::Clear | 0x0001 | 完全な選択はクリアされます。 |
QItemSelectionModel::Select | 0x0002 | 指定されたすべてのインデックスが選択されます。 |
QItemSelectionModel::Deselect | 0x0004 | 指定されたすべてのインデックスが選択解除されます。 |
QItemSelectionModel::Toggle | 0x0008 | 指定されたすべてのインデックスが現在の状態に応じて選択または選択解除されます。 |
QItemSelectionModel::Current | 0x0010 | 現在の選択範囲が更新される。 |
QItemSelectionModel::Rows | 0x0020 | すべてのインデックスが行にまたがって展開されます。 |
QItemSelectionModel::Columns | 0x0040 | すべてのインデックスが列をまたぐように展開される。 |
QItemSelectionModel::SelectCurrent | Select | Current | SelectとCurrentの組み合わせ。 |
QItemSelectionModel::ToggleCurrent | Toggle | Current | ToggleとCurrentの組み合わせ。 |
QItemSelectionModel::ClearAndSelect | Clear | Select | Clear と Select の組み合わせ。 |
SelectionFlags型はQFlags<SelectionFlag>のtypedefである。SelectionFlag値のORの組み合わせを格納する。
プロパティの説明
[read-only]
selectedIndexes : const QModelIndexList
アクセス関数
QModelIndexList | selectedIndexes() const |
Notifier シグナル:
void | selectionChanged(const QItemSelection &selected, const QItemSelection &deselected) |
メンバ関数ドキュメント
[explicit]
QItemSelectionModel::QItemSelectionModel(QAbstractItemModel *model = nullptr)
指定された項目model を操作する選択モデルを構築する。
[explicit]
QItemSelectionModel::QItemSelectionModel(QAbstractItemModel *model, QObject *parent)
parent で指定された項目model を操作する選択モデルを構築します。
[virtual noexcept]
QItemSelectionModel::~QItemSelectionModel()
選択モデルを破棄します。
[virtual slot]
void QItemSelectionModel::clear()
選択モデルをクリアします。selectionChanged() とcurrentChanged() を出力します。
[virtual slot]
void QItemSelectionModel::clearCurrentIndex()
現在のインデックスをクリアします。currentChanged() を呼び出します。
[slot]
void QItemSelectionModel::clearSelection()
選択モデルの選択範囲をクリアします。selectionChanged() を発行します。
[invokable]
bool QItemSelectionModel::columnIntersectsSelection(int column, const QModelIndex &parent = QModelIndex()) const
与えられたparent を持つcolumn で選択されている項目があれば、true
を返します。
注 : Qt 5.15 以降、parent のデフォルトの引数は空のモデル・インデックスです。
注意 : この関数は、メタオブジェクトシステムや QML から呼び出すことができます。Q_INVOKABLE を参照してください。
[signal]
void QItemSelectionModel::currentChanged(const QModelIndex ¤t, const QModelIndex &previous)
このシグナルは、現在のアイテムが変更されるたびに発せられます。previous のモデル・アイテム・インデックスは、current のインデックスに置き換えられます。
アイテムモデルがリセットされると、このシグナルは発せられないことに注意してください。
currentIndex()、setCurrentIndex()、selectionChanged()も参照 。
[signal]
void QItemSelectionModel::currentColumnChanged(const QModelIndex ¤t, const QModelIndex &previous)
このシグナルは、current アイテムが変更され、そのカラムがprevious カレントアイテムのカラムと異なる場合に発行されます。
アイテムモデルがリセットされると、このシグナルは発行されないことに注意してください。
currentChanged(),currentRowChanged(),currentIndex(),setCurrentIndex()も参照 。
QModelIndex QItemSelectionModel::currentIndex() const
現在のアイテムのモデル・アイテム・インデックス、または現在のアイテムがない場合は無効なインデックスを返します。
setCurrentIndex()も参照 。
[signal]
void QItemSelectionModel::currentRowChanged(const QModelIndex ¤t, const QModelIndex &previous)
このシグナルは、current の項目が変更され、その行がprevious の現在の項目の行と異なる場合に発せられます。
アイテムモデルがリセットされると、このシグナルは発せられないことに注意してください。
currentChanged(),currentColumnChanged(),currentIndex(),setCurrentIndex()も参照のこと 。
[protected]
void QItemSelectionModel::emitSelectionChanged(const QItemSelection &newSelection, const QItemSelection &oldSelection)
2つの選択項目newSelection とoldSelection を比較し、選択解除された項目と選択された項目でselectionChanged() を返します。
bool QItemSelectionModel::hasSelection() const
選択モデルに選択された項目があればtrue
を返し、なければfalse
を返します。
[invokable]
bool QItemSelectionModel::isColumnSelected(int column, const QModelIndex &parent = QModelIndex()) const
与えられたparent を持つcolumn ですべての項目が選択されている場合はtrue
を返します。
この関数は通常、同じ列のすべての項目に対してisSelected() を呼び出すよりも高速であり、選択されていない項目は無視されることに注意してください。
注意: Qt 5.15 以降、parent のデフォルトの引数は空のモデル・インデックスです。
注意 : この関数は、メタオブジェクトシステムや QML から呼び出すことができます。Q_INVOKABLE を参照してください。
[invokable]
bool QItemSelectionModel::isRowSelected(int row, const QModelIndex &parent = QModelIndex()) const
与えられたparent を持つrow ですべてのアイテムが選択されている場合、true
を返します。
この関数は通常、同じ行のすべての項目に対してisSelected() を呼び出すよりも高速であり、選択不可能な項目は無視されることに注意してください。
注意: Qt 5.15 以降、parent のデフォルトの引数は空のモデル・インデックスです。
注意 : この関数は、メタオブジェクトシステムや QML から呼び出すことができます。Q_INVOKABLE を参照してください。
[invokable]
bool QItemSelectionModel::isSelected(const QModelIndex &index) const
与えられたモデル項目index が選択されている場合、true
を返します。
注: この関数はメタオブジェクトシステムやQMLから呼び出すことができます。Q_INVOKABLE を参照してください。
QAbstractItemModel *QItemSelectionModel::model()
選択モデルによって操作された項目モデルを返します。
setModel()も参照 。
const QAbstractItemModel *QItemSelectionModel::model() const
選択モデルによって操作された項目モデルを返します。
[signal]
void QItemSelectionModel::modelChanged(QAbstractItemModel *model)
このシグナルはsetModel() でmodel が正常に設定されたときに発せられます。
[virtual slot]
void QItemSelectionModel::reset()
選択モデルをクリアします。シグナルは発しません。
[invokable]
bool QItemSelectionModel::rowIntersectsSelection(int row, const QModelIndex &parent = QModelIndex()) const
与えられたparent でrow に選択されている項目があればtrue
を返します。
注 : Qt 5.15 以降、parent のデフォルトの引数は空のモデル・インデックスです。
注意: この関数はメタオブジェクトシステムやQMLから呼び出すことができます。Q_INVOKABLE を参照してください。
[virtual slot]
void QItemSelectionModel::select(const QItemSelection &selection, QItemSelectionModel::SelectionFlags command)
指定されたcommand を使ってアイテムselection を選択し、selectionChanged() を発行します。
QItemSelectionModel::SelectionFlagも参照してください 。
[virtual slot]
void QItemSelectionModel::select(const QModelIndex &index, QItemSelectionModel::SelectionFlags command)
指定されたcommand を使用してモデル項目index を選択し、selectionChanged() を呼び出します。
QItemSelectionModel::SelectionFlagsも参照して ください。
[invokable]
QModelIndexList QItemSelectionModel::selectedColumns(int row = 0) const
すべての行が選択されている列について、指定されたrow のインデックスを返します。
注意: この関数はメタオブジェクトシステムやQMLから呼び出すことができます。Q_INVOKABLE を参照してください。
selectedIndexes() およびselectedRows()も参照して ください。
QModelIndexList QItemSelectionModel::selectedIndexes() const
選択されたすべてのモデル項目インデックスのリストを返します。リストは重複を含まず、ソートされません。
注釈 selectedIndexes プロパティのゲッター関数です。
[invokable]
QModelIndexList QItemSelectionModel::selectedRows(int column = 0) const
すべての列が選択されている行について、指定されたcolumn 内のインデックスを返します。
注: この関数はメタオブジェクトシステムやQMLから呼び出すことができます。Q_INVOKABLE を参照してください。
selectedIndexes() およびselectedColumns()も参照 。
const QItemSelection QItemSelectionModel::selection() const
選択モデルに格納されている選択範囲を返します。
[signal]
void QItemSelectionModel::selectionChanged(const QItemSelection &selected, const QItemSelection &deselected)
このシグナルは選択範囲が変更されるたびに発せられます。選択範囲の変更は、deselected 項目の項目選択とselected 項目の項目選択として表現されます。
現在のインデックスは選択範囲とは無関係に変化することに注意してください。また、このシグナルはアイテムモデルがリセットされたときには発せられないことにも注意してください。
選択されたままインデックスが変化するアイテムは、selected とdeselected には含まれません。したがって、選択されたアイテムのインデックスのみが変更された場合、selected とdeselected の両方が空の状態でこのシグナルが発行される可能性があります。
注: selectedIndexes プロパティのノーティファイア・シグナル。
select() およびcurrentChanged()も参照して ください。
[virtual slot]
void QItemSelectionModel::setCurrentIndex(const QModelIndex &index, QItemSelectionModel::SelectionFlags command)
モデル項目index をカレント項目に設定し、currentChanged() を発する。カレントアイテムは、キーボードナビゲーションとフォーカス表示に使用されます。カレントアイテムは、選択されたアイテムとは独立していますが、選択されたアイテムがカレントアイテムになることもあります。
指定されたcommand に応じて、index も現在の選択項目の一部となる。
currentIndex() およびselect()も参照 。
void QItemSelectionModel::setModel(QAbstractItemModel *model)
モデルをmodel に設定します。modelChanged() シグナルが出力されます。
model() およびmodelChanged() も参照して ください。
本ドキュメントに含まれる文書の著作権は、それぞれの所有者に帰属します。 本書で提供されるドキュメントは、Free Software Foundation が発行したGNU Free Documentation License version 1.3に基づいてライセンスされています。 Qtおよびそれぞれのロゴは、フィンランドおよびその他の国におけるThe Qt Company Ltd.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。