QTableView 類

QTableView 類提供錶格視圖的默認模型/視圖實現。 更多...

頭: #include <QTableView>
CMake: find_package(Qt6 REQUIRED COMPONENTS Widgets)
target_link_libraries(mytarget PRIVATE Qt6::Widgets)
qmake: QT += widgets
繼承: QAbstractItemView
繼承者:

QTableWidget

特性

公共函數

QTableView (QWidget * parent = nullptr)
virtual ~QTableView ()
void clearSpans ()
int columnAt (int x ) const
int columnSpan (int row , int column ) const
int columnViewportPosition (int column ) const
int columnWidth (int column ) const
Qt::PenStyle gridStyle () const
QHeaderView * horizontalHeader () const
bool isColumnHidden (int column ) const
bool isCornerButtonEnabled () const
bool isRowHidden (int row ) const
bool isSortingEnabled () const
int rowAt (int y ) const
int rowHeight (int row ) const
int rowSpan (int row , int column ) const
int rowViewportPosition (int row ) const
void setColumnHidden (int column , bool hide )
void setColumnWidth (int column , int width )
void setCornerButtonEnabled (bool enable )
void setGridStyle (Qt::PenStyle style )
void setHorizontalHeader (QHeaderView * header )
void setRowHeight (int row , int height )
void setRowHidden (int row , bool hide )
void setSortingEnabled (bool enable )
void setSpan (int row , int column , int rowSpanCount , int columnSpanCount )
void setVerticalHeader (QHeaderView * header )
void setWordWrap (bool on )
bool showGrid () const
QHeaderView * verticalHeader () const
bool wordWrap () const

重實現公共函數

virtual QModelIndex indexAt (const QPoint & pos ) const override
virtual void scrollTo (const QModelIndex & index , QAbstractItemView::ScrollHint hint = EnsureVisible) override
virtual void setModel (QAbstractItemModel * model ) override
virtual void setRootIndex (const QModelIndex & index ) override
virtual void setSelectionModel (QItemSelectionModel * selectionModel ) override
virtual QRect visualRect (const QModelIndex & index ) const override

公共槽

void hideColumn (int column )
void hideRow (int row )
void resizeColumnToContents (int column )
void resizeColumnsToContents ()
void resizeRowToContents (int row )
void resizeRowsToContents ()
void selectColumn (int column )
void selectRow (int row )
void setShowGrid (bool show )
void showColumn (int column )
void showRow (int row )
void sortByColumn (int column , Qt::SortOrder order )

重實現保護函數

virtual void currentChanged (const QModelIndex & current , const QModelIndex & previous ) override
virtual void dropEvent (QDropEvent * event ) override
virtual int horizontalOffset () const override
virtual void initViewItemOption (QStyleOptionViewItem * option ) const override
virtual bool isIndexHidden (const QModelIndex & index ) const override
virtual QModelIndex moveCursor (QAbstractItemView::CursorAction cursorAction , Qt::KeyboardModifiers modifiers ) override
virtual void paintEvent (QPaintEvent * event ) override
virtual void scrollContentsBy (int dx , int dy ) override
virtual QModelIndexList selectedIndexes () const override
virtual void selectionChanged (const QItemSelection & selected , const QItemSelection & deselected ) override
virtual void setSelection (const QRect & rect , QItemSelectionModel::SelectionFlags flags ) override
virtual int sizeHintForColumn (int column ) const override
virtual int sizeHintForRow (int row ) const override
virtual void timerEvent (QTimerEvent * event ) override
virtual void updateGeometries () override
virtual int verticalOffset () const override
virtual QSize viewportSizeHint () const override
virtual QRegion visualRegionForSelection (const QItemSelection & selection ) const override

保護槽

void columnCountChanged (int oldCount , int newCount )
void columnMoved (int column , int oldIndex , int newIndex )
void columnResized (int column , int oldWidth , int newWidth )
void rowCountChanged (int oldCount , int newCount )
void rowMoved (int row , int oldIndex , int newIndex )
void rowResized (int row , int oldHeight , int newHeight )

詳細描述

Table of months and amounts

QTableView 實現從模型,顯示項的錶格視圖。此類用於提供先前由 QTable 類提供的標準錶格,但使用 Qt 模型/視圖體係結構提供的更靈活方式。

QTableView 類是一種 模型/視圖類 且屬於 Qt 的 模型/視圖框架 .

QTableView 實現的接口定義通過 QAbstractItemView 類以允許它顯示提供數據,通過模型派生自 QAbstractItemModel 類。

可以通過采用鼠標點擊單元格 (或通過使用方嚮鍵) 以導航錶格單元格。因為 QTableView 啓用 tabKeyNavigation 默認情況下,也可以命中 Tab 和 Backtab 鍵以從一單元格移至另一單元格。

視覺外觀

錶格擁有的垂直 Header (頭部) 的獲得可以使用 verticalHeader () 函數,和水平 Header (頭) 的獲得是透過 horizontalHeader () 函數。可以找到錶格中每行的高度通過使用 rowHeight ();同樣,可以找到列的寬度使用 columnWidth ()。由於這兩者是純 Widget,可以隱藏它們使用 hide () 函數。每個 Header (頭部) 的配置是采用其 highlightSections and sectionsClickable 特性設為 true .

行和列可以被隱藏和展示采用 hideRow (), hideColumn (), showRow (),和 showColumn ()。可以選擇它們采用 selectRow () 和 selectColumn ()。錶格將展示柵格從屬 showGrid 特性。

像其它項視圖中的項,錶格視圖中展示的項的渲染和編輯是使用標準 delegates 。不管怎樣,對於某些任務,取而代之,有時能將 Widget 插入錶格很有用。設置特定索引的 Widget 是采用 setIndexWidget () function, and later retrieved with indexWidget ().

Table of names, addresses, and quantity 默認情況下,不會展開錶格中的單元格以填充可用空間。

可以使單元格填充可用空間,通過拉伸最後 Header (頭部) 區間。訪問相關 Header (頭部) 使用 horizontalHeader () 或 verticalHeader () 並設置 Header (頭部) 的 stretchLastSection 特性。

要根據每列 (或每行) 的空間要求分發可用空間,調用視圖的 resizeColumnsToContents () 或 resizeRowsToContents () 函數。

坐標係

對於某些專用形式的錶格而言,能夠在行、列索引和 Widget 坐標之間轉換很有用。 rowAt () 函數提供指定行視圖中的 Y 坐標;使用行索引可以獲得相應 Y 坐標采用 rowViewportPosition ()。 columnAt () 和 columnViewportPosition () 函數提供 X 坐標和列索引之間的等價轉換操作。

另請參閱 QTableWidget , 視圖類 , QAbstractItemModel , QAbstractItemView ,和 錶格模型範例 .

特性文檔編製

cornerButtonEnabled : bool

此特性保持是否啓用左上角按鈕

若此特性為 true 則啓用錶格視圖左上角按鈕。點擊此按鈕將選擇錶格視圖中的所有單元格。

此特性是 true 在默認情況下。

訪問函數:

bool isCornerButtonEnabled () const
void setCornerButtonEnabled (bool enable )

gridStyle : Qt::PenStyle

此特性保持用於繪製柵格的鋼筆樣式。

此特性保持繪製柵格時的使用樣式 (見 showGrid ).

訪問函數:

Qt::PenStyle gridStyle () const
void setGridStyle (Qt::PenStyle style )

showGrid : bool

此特性保持是否展示柵格

若此特性為 true 為錶格繪製柵格;若特性為 false ,不繪製柵格。默認值為 true。

訪問函數:

bool showGrid () const
void setShowGrid (bool show )

sortingEnabled : bool

此特性保持是否啓用排序

若此特性為 true ,啓用針對錶格的排序。若此特性為 false ,不啓用排序。默認值為 false。

注意: 把特性設為 true 采用 setSortingEnabled () 會立即觸發調用 sortByColumn () 按當前排序區間和次序。

訪問函數:

bool isSortingEnabled () const
void setSortingEnabled (bool enable )

另請參閱 sortByColumn ().

wordWrap : bool

此特性保持項文本的自動換行策略

若此特性為 true 那麼有必要在單詞分割處換行項文本;否則,根本不換行。此特性為 true 在默認情況下。

注意,即使有啓用換行,也不會展開單元格以擬閤所有文本。將插入省略根據當前 textElideMode .

訪問函數:

bool wordWrap () const
void setWordWrap (bool on )

成員函數文檔編製

[explicit] QTableView:: QTableView ( QWidget * parent = nullptr)

構造錶格視圖采用 parent 以錶示數據。

另請參閱 QAbstractItemModel .

[virtual noexcept] QTableView:: ~QTableView ()

銷毀錶格視圖。

void QTableView:: clearSpans ()

移除錶格視圖中的所有行、列跨度。

另請參閱 setSpan ().

int QTableView:: columnAt ( int x ) const

返迴列在給定 X 坐標 x ,按內容坐標定位。

注意: 此函數返迴 -1 若給定坐標無效 (沒有列)。

另請參閱 rowAt ().

[protected slot] void QTableView:: columnCountChanged ( int oldCount , int newCount )

此槽被調用,每當添加 (或刪除) 列時。之前列數的指定是通過 oldCount ,和新列數的指定是通過 newCount .

[protected slot] void QTableView:: columnMoved ( int column , int oldIndex , int newIndex )

此槽被調用以改變索引為給定 column 在錶格視圖。舊索引指定通過 oldIndex ,和新索引通過 newIndex .

另請參閱 rowMoved ().

[protected slot] void QTableView:: columnResized ( int column , int oldWidth , int newWidth )

此槽被調用以改變寬度為給定 column 。舊寬度的指定通過 oldWidth ,和新寬度通過 newWidth .

另請參閱 rowResized ().

int QTableView:: columnSpan ( int row , int column ) const

返迴錶格元素的列跨度在 ( row , column )。默認為 1。

另請參閱 setSpan () 和 rowSpan ().

int QTableView:: columnViewportPosition ( int column ) const

返迴內容坐標中的 X 坐標為給定 column .

int QTableView:: columnWidth ( int column ) const

返迴寬度為給定 column .

另請參閱 setColumnWidth (), resizeColumnToContents (),和 rowHeight ().

[override virtual protected] void QTableView:: currentChanged (const QModelIndex & current , const QModelIndex & previous )

重實現: QAbstractItemView::currentChanged (const QModelIndex ¤t, const QModelIndex &previous).

[override virtual protected] void QTableView:: dropEvent ( QDropEvent * event )

重實現: QAbstractItemView::dropEvent (QDropEvent *event).

[slot] void QTableView:: hideColumn ( int column )

隱藏給定 column .

另請參閱 showColumn () 和 hideRow ().

[slot] void QTableView:: hideRow ( int row )

隱藏給定 row .

另請參閱 showRow () 和 hideColumn ().

QHeaderView *QTableView:: horizontalHeader () const

返迴錶格視圖的水平 Header (頭部)。

另請參閱 setHorizontalHeader (), verticalHeader (),和 QAbstractItemModel::headerData ().

[override virtual protected] int QTableView:: horizontalOffset () const

重實現: QAbstractItemView::horizontalOffset () const.

返迴錶格視圖中項的水平偏移。

注意,錶格視圖使用水平 Header (頭部) 區間位置,來確定視圖中列的位置。

另請參閱 verticalOffset ().

[override virtual] QModelIndex QTableView:: indexAt (const QPoint & pos ) const

重實現: QAbstractItemView::indexAt (const QPoint &point) const.

返迴對應錶格項的模型項的索引位置,基於位置 pos 按內容坐標。

[override virtual protected] void QTableView:: initViewItemOption ( QStyleOptionViewItem * option ) const

重實現: QAbstractItemView::initViewItemOption (QStyleOptionViewItem *option) const.

bool QTableView:: isColumnHidden ( int column ) const

返迴 true 若給定 column 被隱藏;否則返迴 false .

另請參閱 isRowHidden ().

[override virtual protected] bool QTableView:: isIndexHidden (const QModelIndex & index ) const

重實現: QAbstractItemView::isIndexHidden (const QModelIndex &index) const.

bool QTableView:: isRowHidden ( int row ) const

返迴 true 若給定 row 被隱藏;否則返迴 false .

另請參閱 isColumnHidden ().

[override virtual protected] QModelIndex QTableView:: moveCursor ( QAbstractItemView::CursorAction cursorAction , Qt::KeyboardModifiers modifiers )

重實現: QAbstractItemView::moveCursor (QAbstractItemView::CursorAction cursorAction, Qt::KeyboardModifiers modifiers).

移動光標根據給定 cursorAction ,使用信息提供通過 modifiers .

另請參閱 QAbstractItemView::CursorAction .

[override virtual protected] void QTableView:: paintEvent ( QPaintEvent * event )

重實現: QAbstractScrollArea::paintEvent (QPaintEvent *event).

描繪錶格當收到給定描繪事件 event .

[slot] void QTableView:: resizeColumnToContents ( int column )

重置大小為給定 column 基於用於渲染列中各項的委托的大小提示。

注意: 僅重置可見列的大小。重實現 sizeHintForColumn () 以重置隱藏列的大小。

另請參閱 resizeColumnsToContents (), sizeHintForColumn (),和 QHeaderView::resizeContentsPrecision ().

[slot] void QTableView:: resizeColumnsToContents ()

基於用於渲染列中各項的委托的大小提示,重置所有列的大小。

另請參閱 resizeColumnToContents (), sizeHintForColumn (),和 QHeaderView::resizeContentsPrecision ().

[slot] void QTableView:: resizeRowToContents ( int row )

重置大小為給定 row 基於用於渲染行中各項的委托的大小提示。

另請參閱 resizeRowsToContents (), sizeHintForRow (),和 QHeaderView::resizeContentsPrecision ().

[slot] void QTableView:: resizeRowsToContents ()

重置所有行大小,基於用於渲染行中各項的委托的大小提示。

另請參閱 resizeRowToContents (), sizeHintForRow (),和 QHeaderView::resizeContentsPrecision ().

int QTableView:: rowAt ( int y ) const

返迴在給定 Y 坐標處的行, y ,按內容坐標定位。

注意: 此函數返迴 -1 若給定坐標無效 (沒有行)。

另請參閱 columnAt ().

[protected slot] void QTableView:: rowCountChanged ( int oldCount , int newCount )

此槽被調用,每當添加 (或刪除) 行時。之前行數的指定是通過 oldCount ,和新行數的指定是通過 newCount .

int QTableView:: rowHeight ( int row ) const

返迴高度為給定 row .

另請參閱 setRowHeight (), resizeRowToContents (),和 columnWidth ().

[protected slot] void QTableView:: rowMoved ( int row , int oldIndex , int newIndex )

此槽被調用以改變索引為給定 row 在錶格視圖。舊索引指定通過 oldIndex ,和新索引通過 newIndex .

另請參閱 columnMoved ().

[protected slot] void QTableView:: rowResized ( int row , int oldHeight , int newHeight )

此槽被調用以改變高度為給定 row 。舊高度的指定是通過 oldHeight ,和新高度通過 newHeight .

另請參閱 columnResized ().

int QTableView:: rowSpan ( int row , int column ) const

返迴錶格元素的行跨度在 ( row , column )。默認為 1。

另請參閱 setSpan () 和 columnSpan ().

int QTableView:: rowViewportPosition ( int row ) const

以內容坐標形式返迴 Y 坐標為給定 row .

[override virtual protected] void QTableView:: scrollContentsBy ( int dx , int dy )

重實現: QAbstractScrollArea::scrollContentsBy (int dx, int dy).

Scroll the contents of the table view by ( dx , dy ).

[override virtual] void QTableView:: scrollTo (const QModelIndex & index , QAbstractItemView::ScrollHint hint = EnsureVisible)

重實現: QAbstractItemView::scrollTo (const QModelIndex &index, QAbstractItemView::ScrollHint hint).

Makes sure that the given index is visible in the table view, scrolling if necessary.

[slot] void QTableView:: selectColumn ( int column )

選擇給定 column in the table view if the current SelectionMode and SelectionBehavior allows columns to be selected.

另請參閱 selectRow ().

[slot] void QTableView:: selectRow ( int row )

選擇給定 row in the table view if the current SelectionMode and SelectionBehavior allows rows to be selected.

另請參閱 selectColumn ().

[override virtual protected] QModelIndexList QTableView:: selectedIndexes () const

重實現: QAbstractItemView::selectedIndexes () const.

[override virtual protected] void QTableView:: selectionChanged (const QItemSelection & selected , const QItemSelection & deselected )

重實現: QAbstractItemView::selectionChanged (const QItemSelection &selected, const QItemSelection &deselected).

void QTableView:: setColumnHidden ( int column , bool hide )

hide 為 true 給定 column 將被隱藏;否則,會展示它。

另請參閱 isColumnHidden () 和 setRowHidden ().

void QTableView:: setColumnWidth ( int column , int width )

設置寬度為給定 columnwidth .

另請參閱 columnWidth ().

void QTableView:: setHorizontalHeader ( QHeaderView * header )

將用於水平 Header (頭部) 的 Widget 設為 header .

另請參閱 horizontalHeader () 和 setVerticalHeader ().

[override virtual] void QTableView:: setModel ( QAbstractItemModel * model )

重實現: QAbstractItemView::setModel (QAbstractItemModel *model).

[override virtual] void QTableView:: setRootIndex (const QModelIndex & index )

重實現: QAbstractItemView::setRootIndex (const QModelIndex &index).

void QTableView:: setRowHeight ( int row , int height )

設置高度為給定 rowheight .

另請參閱 rowHeight ().

void QTableView:: setRowHidden ( int row , bool hide )

hide 為 true row 將被隱藏,否則它將被展示。

另請參閱 isRowHidden () 和 setColumnHidden ().

[override virtual protected] void QTableView:: setSelection (const QRect & rect , QItemSelectionModel::SelectionFlags flags )

重實現: QAbstractItemView::setSelection (const QRect &rect, QItemSelectionModel::SelectionFlags flags).

選擇項基於給定 rect 和根據指定選定 flags .

[override virtual] void QTableView:: setSelectionModel ( QItemSelectionModel * selectionModel )

重實現: QAbstractItemView::setSelectionModel (QItemSelectionModel *selectionModel).

void QTableView:: setSortingEnabled ( bool enable )

enable 為 True,啓用用於錶格的排序並立即觸發調用 sortByColumn () 按當前排序區間和次序

注意: setter 函數對於特性 sortingEnabled .

另請參閱 isSortingEnabled ().

void QTableView:: setSpan ( int row , int column , int rowSpanCount , int columnSpanCount )

設置錶格元素的跨度按 ( row , column ) 到行/列數指定通過 ( rowSpanCount , columnSpanCount ).

另請參閱 rowSpan () 和 columnSpan ().

void QTableView:: setVerticalHeader ( QHeaderView * header )

將用於垂直 Header (頭部) 的 Widget 設為 header .

另請參閱 verticalHeader () 和 setHorizontalHeader ().

[slot] void QTableView:: showColumn ( int column )

展示給定 column .

另請參閱 hideColumn () 和 showRow ().

[slot] void QTableView:: showRow ( int row )

展示給定 row .

另請參閱 hideRow () 和 showColumn ().

[override virtual protected] int QTableView:: sizeHintForColumn ( int column ) const

重實現: QAbstractItemView::sizeHintForColumn (int column) const.

返迴大小提示為給定 column 的寬度或 -1 若沒有模型。

若需要把給定列寬度設為固定值,調用 QHeaderView::resizeSection () 在錶格水平 Header (頭部)。

若在子類中重實現此函數,注意,將使用返迴值當 resizeColumnToContents () 或 QHeaderView::resizeSections () 被調用。若水平 Header (頭部) 或項委托要求更大列寬度,將使用更大寬度代替。

另請參閱 QWidget::sizeHint , horizontalHeader (),和 QHeaderView::resizeContentsPrecision ().

[override virtual protected] int QTableView:: sizeHintForRow ( int row ) const

重實現: QAbstractItemView::sizeHintForRow (int row) const.

返迴大小提示為給定 row 的高度或 -1 若沒有模型。

若需要把給定行高度設為固定值,調用 QHeaderView::resizeSection () 在錶格垂直 Header (頭部)。

若在子類中重實現此函數,注意,將僅使用返迴值當 resizeRowToContents () 被調用。在此情況下,若垂直 Header (頭部) 或項委托要求更大行高度,將使用寬度代替。

另請參閱 QWidget::sizeHint , verticalHeader (),和 QHeaderView::resizeContentsPrecision ().

[slot] void QTableView:: sortByColumn ( int column , Qt::SortOrder order )

按值排序模型根據給定 column and order .

column 可以是 -1,在這種情況下,不會展示排序指示器,且模型將返迴其自然、未排序次序。注意,所有模型並非都支持這,且在這種情況下甚至可能崩潰。

另請參閱 sortingEnabled .

[override virtual protected] void QTableView:: timerEvent ( QTimerEvent * event )

重實現: QAbstractItemView::timerEvent (QTimerEvent *event).

[override virtual protected] void QTableView:: updateGeometries ()

重實現: QAbstractItemView::updateGeometries ().

QHeaderView *QTableView:: verticalHeader () const

返迴錶格視圖的垂直 Header (頭部)。

另請參閱 setVerticalHeader (), horizontalHeader (),和 QAbstractItemModel::headerData ().

[override virtual protected] int QTableView:: verticalOffset () const

重實現: QAbstractItemView::verticalOffset () const.

返迴錶格視圖中項的垂直偏移。

注意,錶格視圖使用垂直 Header (頭部) 區間位置,來確定視圖中行的位置。

另請參閱 horizontalOffset ().

[override virtual protected] QSize QTableView:: viewportSizeHint () const

重實現: QAbstractItemView::viewportSizeHint () const.

[override virtual] QRect QTableView:: visualRect (const QModelIndex & index ) const

重實現: QAbstractItemView::visualRect (const QModelIndex &index) const.

Returns the rectangle on the viewport occupied by the given index . If the index is hidden in the view it will return a null QRect .

[override virtual protected] QRegion QTableView:: visualRegionForSelection (const QItemSelection & selection ) const

重實現: QAbstractItemView::visualRegionForSelection (const QItemSelection &selection) const.

返迴矩形從項視口在給定 selection .

從 4.7 起,返迴區域僅包含 (或包括在) 視口相交矩形。