QListView 類為模型提供列錶或圖標視圖。 更多...
| 頭: | #include <QListView> |
| qmake: | QT += widgets |
| 繼承: | QAbstractItemView |
| 繼承者: |
QListWidget and QUndoView |
| enum | Flow { LeftToRight, TopToBottom } |
| enum | LayoutMode { SinglePass, Batched } |
| enum | Movement { Static, Free, Snap } |
| enum | ResizeMode { Fixed, Adjust } |
| enum | ViewMode { ListMode, IconMode } |
|
|
| QListView (QWidget * parent = nullptr) | |
| virtual | ~QListView () |
| int | batchSize () const |
| void | clearPropertyFlags () |
| QListView::Flow | flow () const |
| QSize | gridSize () const |
| bool | isRowHidden (int row ) const |
| bool | isSelectionRectVisible () const |
| bool | isWrapping () const |
| Qt::Alignment | itemAlignment () const |
| QListView::LayoutMode | layoutMode () const |
| int | modelColumn () const |
| QListView::Movement | movement () const |
| QListView::ResizeMode | resizeMode () const |
| void | setBatchSize (int batchSize ) |
| void | setFlow (QListView::Flow flow ) |
| void | setGridSize (const QSize & size ) |
| void | setItemAlignment (Qt::Alignment alignment ) |
| void | setLayoutMode (QListView::LayoutMode mode ) |
| void | setModelColumn (int column ) |
| void | setMovement (QListView::Movement movement ) |
| void | setResizeMode (QListView::ResizeMode mode ) |
| void | setRowHidden (int row , bool hide ) |
| void | setSelectionRectVisible (bool show ) |
| void | setSpacing (int space ) |
| void | setUniformItemSizes (bool enable ) |
| void | setViewMode (QListView::ViewMode mode ) |
| void | setWordWrap (bool on ) |
| void | setWrapping (bool enable ) |
| int | spacing () const |
| bool | uniformItemSizes () const |
| QListView::ViewMode | viewMode () const |
| bool | wordWrap () const |
| virtual QModelIndex | indexAt (const QPoint & p ) const override |
| virtual void | scrollTo (const QModelIndex & index , QAbstractItemView::ScrollHint hint = EnsureVisible) override |
| virtual QRect | visualRect (const QModelIndex & index ) const override |
| void | indexesMoved (const QModelIndexList & indexes ) |
| QRect | rectForIndex (const QModelIndex & index ) const |
| void | setPositionForIndex (const QPoint & position , const QModelIndex & index ) |
| virtual void | currentChanged (const QModelIndex & current , const QModelIndex & previous ) override |
| virtual void | dataChanged (const QModelIndex & topLeft , const QModelIndex & bottomRight , const QVector<int> & roles = QVector<int>()) override |
| virtual void | dragLeaveEvent (QDragLeaveEvent * e ) override |
| virtual void | dragMoveEvent (QDragMoveEvent * e ) override |
| virtual void | dropEvent (QDropEvent * event ) override |
| virtual bool | event (QEvent * e ) override |
| virtual int | horizontalOffset () const override |
| virtual bool | isIndexHidden (const QModelIndex & index ) const override |
| virtual void | mouseMoveEvent (QMouseEvent * e ) override |
| virtual void | mouseReleaseEvent (QMouseEvent * e ) override |
| virtual QModelIndex | moveCursor (QAbstractItemView::CursorAction cursorAction , Qt::KeyboardModifiers modifiers ) override |
| virtual void | paintEvent (QPaintEvent * e ) override |
| virtual void | resizeEvent (QResizeEvent * e ) override |
| virtual void | rowsAboutToBeRemoved (const QModelIndex & parent , int start , int end ) override |
| virtual void | rowsInserted (const QModelIndex & parent , int start , int end ) override |
| virtual QModelIndexList | selectedIndexes () const override |
| virtual void | selectionChanged (const QItemSelection & selected , const QItemSelection & deselected ) override |
| virtual void | setSelection (const QRect & rect , QItemSelectionModel::SelectionFlags command ) override |
| virtual void | startDrag (Qt::DropActions supportedActions ) override |
| virtual void | timerEvent (QTimerEvent * e ) override |
| virtual void | updateGeometries () override |
| virtual int | verticalOffset () const override |
| virtual QStyleOptionViewItem | viewOptions () const override |
| virtual QSize | viewportSizeHint () const override |
| virtual QRegion | visualRegionForSelection (const QItemSelection & selection ) const override |
| virtual void | wheelEvent (QWheelEvent * e ) override |
QListView 以簡單非分層列錶 (或圖標的集閤) 形式呈現模型中存儲的項。此類用於提供列錶和圖標視圖,以前提供是通過
QListBox
and
QIconView
類,但使用由 Qt 模型/視圖體係結構提供的方式更靈活。
QListView 類是一種 模型/視圖類 且屬於 Qt 的 模型/視圖框架 .
此視圖不顯示水平或垂直標題;要顯示具有水平標題的項列錶,使用 QTreeView 代替。
QListView 實現接口的定義是通過 QAbstractItemView 類以允許它顯示提供數據,通過模型派生自 QAbstractItemModel 類。
可以使用 2 種視圖模式之一顯示列錶視圖中的項:按 ListMode ,項以簡單列錶形式顯示;按 IconMode ,列錶視圖接受的形式為 圖標視圖 其中項按圖標顯示 (像:文件管理器中的文件)。默認情況下,列錶視圖按 ListMode 。要改變視圖模式,使用 setViewMode () 函數,和要確定當前視圖模式,使用 viewMode ().
這些視圖項的布置方嚮指定通過 flow () 對於列錶視圖。項可能固定在到位,或允許移動,從屬視圖 movement () 狀態。
若模型中的項無法完全按流方嚮布置,可以在視圖 Widget 邊界處換行它們;這取決於 isWrapping ()。此特性很有用,當按圖標視圖錶示項時。
The resizeMode () 和 layoutMode () 支配如何及何時布置項。項間隔按照其 spacing (),且可以存在於名義大小柵格中指定通過 gridSize ()。項可以渲染為大圖標 (或小圖標) 從屬其 iconSize ().
賦予正處理數據的有關視圖提示是可能的,為改善其性能當顯示大量項時。對於旨在顯示帶有相等大小的項的視圖而言,可以采納的一種方式是設置 uniformItemSizes 特性為 true。
另請參閱 視圖類 , 項視圖拼圖範例 , QTreeView , QTableView ,和 QListWidget .
| 常量 | 值 | 描述 |
|---|---|---|
QListView::LeftToRight
|
0
|
項從左到右布置在視圖中。 |
QListView::TopToBottom
|
1
|
項從上到下布置在視圖中。 |
| 常量 | 值 | 描述 |
|---|---|---|
QListView::SinglePass
|
0
|
一次性布置所有項。 |
QListView::Batched
|
1
|
項的布置是每批 batchSize 項。 |
另請參閱 batchSize .
| 常量 | 值 | 描述 |
|---|---|---|
QListView::Static
|
0
|
用戶無法移動項。 |
QListView::Free
|
1
|
用戶可以自由移動項。 |
QListView::Snap
|
2
|
項捕捉到指定柵格當移動時;見 setGridSize (). |
| 常量 | 值 | 描述 |
|---|---|---|
QListView::Fixed
|
0
|
僅首次布置項時展示視圖。 |
QListView::Adjust
|
1
|
每當重置布置項視圖大小時。 |
| 常量 | 值 | 描述 |
|---|---|---|
QListView::ListMode
|
0
|
布置項使用 TopToBottom 流,采用 Small 尺寸和 Static 移動 |
QListView::IconMode
|
1
|
布置項使用 LeftToRight 流,采用 Large 尺寸和 Free 移動 |
此特性保持每批次布置的項數若 layoutMode 被設為 Batched
默認值為 100。
該特性在 Qt 4.2 引入。
訪問函數:
| int | batchSize () const |
| void | setBatchSize (int batchSize ) |
此特性保持項布局應流化的方嚮。
若此特性為
LeftToRight
,從左到右布置項。若
isWrapping
特性為
true
,布局將換行當到達可見區域右側時。若此特性為
TopToBottom
,項將從可見區域頂部開始布置,到達底部時換行。
設置此特性將導緻再次布置項,當視圖可見時。
默認情況下,此特性被設為 TopToBottom .
訪問函數:
| QListView::Flow | flow () const |
| void | setFlow (QListView::Flow flow ) |
另請參閱 viewMode .
此特性保持布局柵格的大小
此特性是在其中布置項的柵格的大小。默認大小為空,意味著沒有柵格且布局也不在柵格中完成。將此特性設為非空大小,切換柵格布局為開 (當柵格布局生效 spacing 特性被忽略)。
設置此特性將導緻再次布置項,當視圖可見時。
訪問函數:
| QSize | gridSize () const |
| void | setGridSize (const QSize & size ) |
另請參閱 viewMode .
此特性保持項布局是否應換行。
此特性保持是否應換行布局,當可見區域沒有更多空間時。布局換行點從屬 flow 特性。
設置此特性將導緻再次布置項,當視圖可見時。
默認情況下,此特性為
false
.
訪問函數:
| bool | isWrapping () const |
| void | setWrapping (bool enable ) |
另請參閱 viewMode .
此特性保持單元格中每項的對齊方式
這纔支持在 ListMode with TopToBottom 流並啓用換行。默認對齊方式為 0,意味著項完全填充其單元格。
該特性在 Qt 5.12 引入。
訪問函數:
| Qt::Alignment | itemAlignment () const |
| void | setItemAlignment (Qt::Alignment alignment ) |
確定項布局是否應立即 (或延遲) 發生。
此特性保持項的布局模式。當模式為 SinglePass (默認),一次性布置所有項。當模式為 Batched ,項的布置是每批 batchSize 項,當處理事件時。這使馬上查看可見項並與之交互成為可能,當在布置其餘項時。
訪問函數:
| QListView::LayoutMode | layoutMode () const |
| void | setLayoutMode (QListView::LayoutMode mode ) |
另請參閱 viewMode .
此特性保持可見模型列
默認情況下,此特性包含 0,指示將展示模型中的第 1 列。
訪問函數:
| int | modelColumn () const |
| void | setModelColumn (int column ) |
此特性保持項是否能自由移動、捕捉到柵格、或根本無法移動。
此特性確定用戶可以在視圖中如何移動項。 Static 意味著用戶無法移動項。 Free 意味著用戶可以將項拖放到視圖中的任意位置。 Snap 意味著用戶可以拖放項,但隻能定位到名義柵格錶示通過 gridSize 特性。
設置此特性將導緻再次布置項,當視圖可見時。
默認情況下,此特性被設為 Static .
訪問函數:
| QListView::Movement | movement () const |
| void | setMovement (QListView::Movement movement ) |
另請參閱 gridSize , resizeMode ,和 viewMode .
此特性保持是否再次布置項,當重置視圖大小時。
若此特性為 Adjust ,將再次布置項,當重置視圖大小時。若值為 Fixed ,不布置項當重置視圖大小時。
默認情況下,此特性被設為 Fixed .
訪問函數:
| QListView::ResizeMode | resizeMode () const |
| void | setResizeMode (QListView::ResizeMode mode ) |
另請參閱 movement , gridSize ,和 viewMode .
若選定矩形應該可見
若此特性為
true
那麼選定矩形可見;否則會被隱藏。
注意: 選定矩形纔可見,若選擇模式為可以選擇多項;即:不繪製選定矩形若選擇模式為 QAbstractItemView::SingleSelection .
默認情況下,此特性為
false
.
該特性在 Qt 4.3 引入。
訪問函數:
| bool | isSelectionRectVisible () const |
| void | setSelectionRectVisible (bool show ) |
此特性保持圍繞布局項的空間
此特性是圍繞布局中項填充的空空間大小。
設置此特性將導緻再次布置項,當視圖可見時。
默認情況下,此特性包含 0 值。
訪問函數:
| int | spacing () const |
| void | setSpacing (int space ) |
另請參閱 viewMode .
此特性保持列錶視圖中的所有項是否擁有相同大小
纔應將此特性設為 true 若要保證視圖中的所有項擁有相同大小。這使視圖能夠齣於性能目的做一些優化。
默認情況下,此特性為
false
.
該特性在 Qt 4.1 引入。
訪問函數:
| bool | uniformItemSizes () const |
| void | setUniformItemSizes (bool enable ) |
此特性保持視圖模式為 QListView .
此特性將其它未設置特性,更改成與設置視圖模式一緻。 QListView 特定特性 (已設置的) 不改變,除非 clearPropertyFlags () 被調用。
設置視圖模式將基於選中移動啓用 (或禁用) 拖放。對於 ListMode ,默認移動為 Static (禁用拖放);對於 IconMode ,默認移動為 Free (啓用拖放)。
訪問函數:
| QListView::ViewMode | viewMode () const |
| void | setViewMode (QListView::ViewMode mode ) |
另請參閱 isWrapping , spacing , gridSize , flow , movement ,和 resizeMode .
此特性保持項文本的自動換行策略
若此特性為
true
那麼有必要在單詞分割處換行項文本;否則,根本不換行。此特性為
false
在默認情況下。
請注意,即使啓用瞭換行,也不會為文本騰齣空間而展開單元格。無法展示的文本將打印省略號,根據視圖的 textElideMode .
該特性在 Qt 4.2 引入。
訪問函數:
| bool | wordWrap () const |
| void | setWordWrap (bool on ) |
創建新的 QListView 采用給定 parent 以查看模型。使用 setModel () 來設置模型。
[signal]
void
QListView::
indexesMoved
(const
QModelIndexList
&
indexes
)
此信號發射,當指定 indexes 在視圖中被移動。
該函數在 Qt 4.2 引入。
[虛擬]
QListView::
~QListView
()
銷毀視圖。
清零 QListView 特定特性標誌。見 viewMode .
特性繼承自 QAbstractItemView 未被特性標誌涵蓋。具體來說, dragEnabled and acceptsDrops 的計算是通過 QListView 當調用 setMovement () 或 setViewMode ().
[override virtual protected]
void
QListView::
currentChanged
(const
QModelIndex
&
current
, const
QModelIndex
&
previous
)
重實現: QAbstractItemView::currentChanged (const QModelIndex ¤t, const QModelIndex &previous).
[override virtual protected]
void
QListView::
dataChanged
(const
QModelIndex
&
topLeft
, const
QModelIndex
&
bottomRight
, const
QVector
<
int
> &
roles
= QVector<int>())
重實現: QAbstractItemView::dataChanged (const QModelIndex &topLeft, const QModelIndex &bottomRight, const QVector<int> &roles).
[override virtual protected]
void
QListView::
dragLeaveEvent
(
QDragLeaveEvent
*
e
)
重實現: QAbstractItemView::dragLeaveEvent (QDragLeaveEvent *event).
[override virtual protected]
void
QListView::
dragMoveEvent
(
QDragMoveEvent
*
e
)
重實現: QAbstractItemView::dragMoveEvent (QDragMoveEvent *event).
[override virtual protected]
void
QListView::
dropEvent
(
QDropEvent
*
event
)
重實現: QAbstractItemView::dropEvent (QDropEvent *event).
[override virtual protected]
bool
QListView::
event
(
QEvent
*
e
)
重實現: QAbstractItemView::event (QEvent *event).
[override virtual protected]
int
QListView::
horizontalOffset
() const
重實現: QAbstractItemView::horizontalOffset () const.
[override virtual]
QModelIndex
QListView::
indexAt
(const
QPoint
&
p
) const
重實現: QAbstractItemView::indexAt (const QPoint &point) const.
[override virtual protected]
bool
QListView::
isIndexHidden
(const
QModelIndex
&
index
) const
重實現: QAbstractItemView::isIndexHidden (const QModelIndex &index) const.
返迴
true
若
row
被隱藏;否則返迴
false
.
[override virtual protected]
void
QListView::
mouseMoveEvent
(
QMouseEvent
*
e
)
重實現: QAbstractItemView::mouseMoveEvent (QMouseEvent *event).
[override virtual protected]
void
QListView::
mouseReleaseEvent
(
QMouseEvent
*
e
)
重實現: QAbstractItemView::mouseReleaseEvent (QMouseEvent *event).
[override virtual protected]
QModelIndex
QListView::
moveCursor
(
QAbstractItemView::CursorAction
cursorAction
,
Qt::KeyboardModifiers
modifiers
)
重實現: QAbstractItemView::moveCursor (QAbstractItemView::CursorAction cursorAction, Qt::KeyboardModifiers modifiers).
[override virtual protected]
void
QListView::
paintEvent
(
QPaintEvent
*
e
)
重實現: QAbstractScrollArea::paintEvent (QPaintEvent *event).
[protected]
QRect
QListView::
rectForIndex
(const
QModelIndex
&
index
) const
返迴項矩形在位置 index 在模型中。矩形位於內容坐標中。
另請參閱 visualRect ().
[override virtual protected]
void
QListView::
resizeEvent
(
QResizeEvent
*
e
)
重實現: QAbstractItemView::resizeEvent (QResizeEvent *event).
[override virtual protected]
void
QListView::
rowsAboutToBeRemoved
(const
QModelIndex
&
parent
,
int
start
,
int
end
)
重實現: QAbstractItemView::rowsAboutToBeRemoved (const QModelIndex &parent, int start, int end).
[override virtual protected]
void
QListView::
rowsInserted
(const
QModelIndex
&
parent
,
int
start
,
int
end
)
重實現: QAbstractItemView::rowsInserted (const QModelIndex &parent, int start, int end).
[override virtual]
void
QListView::
scrollTo
(const
QModelIndex
&
index
,
QAbstractItemView::ScrollHint
hint
= EnsureVisible)
重實現: QAbstractItemView::scrollTo (const QModelIndex &index, QAbstractItemView::ScrollHint hint).
[override virtual protected]
QModelIndexList
QListView::
selectedIndexes
() const
重實現: QAbstractItemView::selectedIndexes () const.
[override virtual protected]
void
QListView::
selectionChanged
(const
QItemSelection
&
selected
, const
QItemSelection
&
deselected
)
重實現: QAbstractItemView::selectionChanged (const QItemSelection &selected, const QItemSelection &deselected).
[protected]
void
QListView::
setPositionForIndex
(const
QPoint
&
position
, const
QModelIndex
&
index
)
設置項內容位置在 index 在模型中到給定 position 。若列錶視圖的移動模式為 Static 或其視圖模式為 ListView ,此函數沒有效果。
該函數在 Qt 4.1 引入。
若 hide 為 True,給定 row 將隱藏;否則 row 將展示。
另請參閱 isRowHidden ().
[override virtual protected]
void
QListView::
setSelection
(const
QRect
&
rect
,
QItemSelectionModel::SelectionFlags
command
)
重實現: QAbstractItemView::setSelection (const QRect &rect, QItemSelectionModel::SelectionFlags flags).
[override virtual protected]
void
QListView::
startDrag
(
Qt::DropActions
supportedActions
)
重實現: QAbstractItemView::startDrag (Qt::DropActions supportedActions).
[override virtual protected]
void
QListView::
timerEvent
(
QTimerEvent
*
e
)
重實現: QAbstractItemView::timerEvent (QTimerEvent *event).
[override virtual protected]
void
QListView::
updateGeometries
()
重實現: QAbstractItemView::updateGeometries ().
[override virtual protected]
int
QListView::
verticalOffset
() const
重實現: QAbstractItemView::verticalOffset () const.
[override virtual protected]
QStyleOptionViewItem
QListView::
viewOptions
() const
重實現: QAbstractItemView::viewOptions () const.
[override virtual protected]
QSize
QListView::
viewportSizeHint
() const
重實現: QAbstractItemView::viewportSizeHint () const.
該函數在 Qt 5.2 引入。
[override virtual]
QRect
QListView::
visualRect
(const
QModelIndex
&
index
) const
重實現: QAbstractItemView::visualRect (const QModelIndex &index) const.
[override virtual protected]
QRegion
QListView::
visualRegionForSelection
(const
QItemSelection
&
selection
) const
重實現: QAbstractItemView::visualRegionForSelection (const QItemSelection &selection) const.
從 4.7 起,返迴區域僅包含 (或包括在) 視口相交矩形。
[override virtual protected]
void
QListView::
wheelEvent
(
QWheelEvent
*
e
)
重實現: QAbstractScrollArea::wheelEvent (QWheelEvent *e).