The QTableView 類提供錶格視圖的默認模型/視圖實現。 更多...
| 頭: | #include <QTableView> |
| qmake: | QT += widgets |
| 繼承: | QAbstractItemView |
| 繼承者: | QTableWidget |
|
|
| QTableView (QWidget * parent = Q_NULLPTR) | |
| ~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 |
| void | sortByColumn (int column , Qt::SortOrder order ) |
| QHeaderView * | verticalHeader () const |
| bool | wordWrap () const |
| virtual QModelIndex | indexAt (const QPoint & pos ) const |
| virtual void | setModel (QAbstractItemModel * model ) |
| virtual void | setRootIndex (const QModelIndex & index ) |
| virtual void | setSelectionModel (QItemSelectionModel * selectionModel ) |
| 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 ) |
| virtual void | currentChanged (const QModelIndex & current , const QModelIndex & previous ) |
| virtual int | horizontalOffset () const |
| virtual bool | isIndexHidden (const QModelIndex & index ) const |
| virtual QModelIndex | moveCursor (CursorAction cursorAction , Qt::KeyboardModifiers modifiers ) |
| virtual void | paintEvent (QPaintEvent * event ) |
| virtual QModelIndexList | selectedIndexes () const |
| virtual void | selectionChanged (const QItemSelection & selected , const QItemSelection & deselected ) |
| virtual void | setSelection (const QRect & rect , QItemSelectionModel::SelectionFlags flags ) |
| virtual int | sizeHintForColumn (int column ) const |
| virtual int | sizeHintForRow (int row ) const |
| virtual void | timerEvent (QTimerEvent * event ) |
| virtual void | updateGeometries () |
| virtual int | verticalOffset () const |
| virtual QStyleOptionViewItem | viewOptions () const |
| virtual QSize | viewportSizeHint () const |
| 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 ) |
The QTableView 類提供錶格視圖的默認模型/視圖實現。
A QTableView 實現從模型顯示項的錶格視圖。此類用於提供先前由 QTable 類提供的標準錶格,但使用由 Qt 模型/視圖體係結構提供的更靈活方式。
The QTableView 類是一種 模型/視圖類 且屬於 Qt 的 模型/視圖框架 .
QTableView 實現接口的定義通過 QAbstractItemView 類以允許它顯示提供數據,通過模型派生自 QAbstractItemModel 類。
可以通過采用鼠標點擊單元格 (或通過使用方嚮鍵) 以導航錶格單元格。因為 QTableView 啓用 tabKeyNavigation 默認情況下,也可以命中 Tab 和 Backtab 鍵以從一單元格移至另一單元格。
錶格擁有的垂直 Header (頭部) 的獲得可以使用 verticalHeader () 函數,和水平 Header (頭) 的獲得是透過 horizontalHeader () 函數。可以找到錶格中每行的高度通過使用 rowHeight ();同樣,可以找到列的寬度使用 columnWidth ()。由於這兩者是純 Widget,可以隱藏它們使用 hide () 函數。
行和列可以被隱藏和展示采用 hideRow (), hideColumn (), showRow (),和 showColumn ()。可以選擇它們采用 selectRow () 和 selectColumn ()。錶格將展示柵格從屬 showGrid 特性。
像其它項視圖中的項,錶格視圖中展示的項的渲染和編輯是使用標準 delegates 。不管怎樣,對於某些任務,取而代之,有時能將 Widget 插入錶格很有用。設置特定索引的 Widget 是采用 setIndexWidget() 函數,和稍後檢索采用 indexWidget() .
|
默認情況下,不會展開錶格中的單元格以填充可用空間。 可以使單元格填充可用空間,通過拉伸最後 Header (頭部) 區間。訪問相關 Header (頭部) 使用 horizontalHeader () 或 verticalHeader () 並設置 Header (頭部) 的 stretchLastSection 特性。 要根據每列 (或每行) 的空間要求分發可用空間,調用視圖的 resizeColumnsToContents () 或 resizeRowsToContents () 函數。 |
對於某些專用形式的錶格而言,能夠在行、列索引和 Widget 坐標之間轉換很有用。 rowAt () 函數提供指定行視圖中的 Y 坐標;使用行索引可以獲得相應 Y 坐標采用 rowViewportPosition ()。 columnAt () 和 columnViewportPosition () 函數提供 X 坐標和列索引之間的等價轉換操作。
另請參閱 QTableWidget , 視圖類 , QAbstractItemModel , QAbstractItemView , 圖錶範例 , 像素器範例 ,和 錶格模型範例 .
此特性保持是否啓用左上角按鈕
若此特性為
true
則啓用錶格視圖左上角按鈕。點擊此按鈕將選擇錶格視圖中的所有單元格。
此特性是
true
在默認情況下。
該特性在 Qt 4.3 引入。
訪問函數:
| bool | isCornerButtonEnabled () const |
| void | setCornerButtonEnabled (bool enable ) |
此特性保持用於繪製柵格的鋼筆樣式。
此特性保持繪製柵格時的使用樣式 (見 showGrid ).
訪問函數:
| Qt::PenStyle | gridStyle () const |
| void | setGridStyle (Qt::PenStyle style ) |
此特性保持是否展示柵格
若此特性為
true
為錶格繪製柵格;若特性為
false
,不繪製柵格。默認值為 true。
訪問函數:
| bool | showGrid () const |
| void | setShowGrid (bool show ) |
此特性保持是否啓用排序
若此特性為
true
,啓用針對錶格的排序。若此特性為
false
,不啓用排序。默認值為 false。
注意: 把特性設為 true 采用 setSortingEnabled () 會立即觸發調用 sortByColumn () 按當前排序區間和次序。
該特性在 Qt 4.2 引入。
訪問函數:
| bool | isSortingEnabled () const |
| void | setSortingEnabled (bool enable ) |
另請參閱 sortByColumn ().
此特性保持項文本的自動換行策略
若此特性為
true
那麼有必要在單詞分割處換行項文本;否則,根本不換行。此特性為
true
在默認情況下。
注意,即使啓用瞭換行,也不會展開單元格以擬閤所有文本。將插入省略號根據當前 textElideMode .
該特性在 Qt 4.3 引入。
訪問函數:
| bool | wordWrap () const |
| void | setWordWrap (bool on ) |
構造錶格視圖采用 parent 以錶示數據。
另請參閱 QAbstractItemModel .
銷毀錶格視圖。
移除錶格視圖中的所有行、列跨度。
該函數在 Qt 4.4 引入。
另請參閱 setSpan ().
返迴列在給定 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 ().
返迴錶格元素的列跨度在 ( row , column )。默認為 1。
該函數在 Qt 4.2 引入。
返迴內容坐標中的 X 坐標為給定 column .
返迴寬度為給定 column .
另請參閱 setColumnWidth (), resizeColumnToContents (),和 rowHeight ().
[virtual protected]
void
QTableView::
currentChanged
(const
QModelIndex
&
current
, const
QModelIndex
&
previous
)
重實現自 QAbstractItemView::currentChanged ().
[slot]
void
QTableView::
hideColumn
(
int
column
)
隱藏給定 column .
另請參閱 showColumn () 和 hideRow ().
[slot]
void
QTableView::
hideRow
(
int
row
)
隱藏給定 row .
另請參閱 showRow () 和 hideColumn ().
返迴錶格視圖的水平 Header (頭部)。
另請參閱 setHorizontalHeader (), verticalHeader (),和 QAbstractItemModel::headerData ().
[virtual protected]
int
QTableView::
horizontalOffset
() const
重實現自 QAbstractItemView::horizontalOffset ().
返迴錶格視圖中項的水平偏移。
注意,錶格視圖使用水平 Header (頭部) 區間位置,來確定視圖中列的位置。
另請參閱 verticalOffset ().
[虛擬]
QModelIndex
QTableView::
indexAt
(const
QPoint
&
pos
) const
重實現自 QAbstractItemView::indexAt ().
返迴對應錶格項的模型項的索引位置,基於位置 pos 按內容坐標。
返迴
true
若給定
column
被隱藏;否則返迴
false
.
另請參閱 isRowHidden ().
[virtual protected]
bool
QTableView::
isIndexHidden
(const
QModelIndex
&
index
) const
重實現自 QAbstractItemView::isIndexHidden ().
返迴
true
若給定
row
被隱藏;否則返迴
false
.
另請參閱 isColumnHidden ().
[virtual protected]
QModelIndex
QTableView::
moveCursor
(
CursorAction
cursorAction
,
Qt::KeyboardModifiers
modifiers
)
重實現自 QAbstractItemView::moveCursor ().
移動光標根據給定 cursorAction ,使用信息提供通過 modifiers .
另請參閱 QAbstractItemView::CursorAction .
[virtual protected]
void
QTableView::
paintEvent
(
QPaintEvent
*
event
)
重實現自 QWidget::paintEvent ().
描繪錶格當收到給定描繪事件 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 ().
返迴在給定 Y 坐標處的行, y ,按內容坐標定位。
注意: 此函數返迴 -1 若給定坐標無效 (沒有行)。
另請參閱 columnAt ().
[protected slot]
void
QTableView::
rowCountChanged
(
int
oldCount
,
int
newCount
)
此槽被調用,每當添加 (或刪除) 行時。之前行數的指定是通過 oldCount ,和新行數的指定是通過 newCount .
返迴高度為給定 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 ().
返迴錶格元素的行跨度在 ( row , column )。默認為 1。
該函數在 Qt 4.2 引入。
另請參閱 setSpan () 和 columnSpan ().
以內容坐標形式返迴 Y 坐標為給定 row .
[slot]
void
QTableView::
selectColumn
(
int
column
)
選擇給定 column 在錶格視圖若當前 SelectionMode and SelectionBehavior 允許選中列。
另請參閱 selectRow ().
[slot]
void
QTableView::
selectRow
(
int
row
)
選擇給定 row 在錶格視圖若當前 SelectionMode and SelectionBehavior 允許選中行。
另請參閱 selectColumn ().
[virtual protected]
QModelIndexList
QTableView::
selectedIndexes
() const
重實現自 QAbstractItemView::selectedIndexes ().
[virtual protected]
void
QTableView::
selectionChanged
(const
QItemSelection
&
selected
, const
QItemSelection
&
deselected
)
重實現自 QAbstractItemView::selectionChanged ().
若 hide 為 true 給定 column 將被隱藏;否則,會展示它。
另請參閱 isColumnHidden () 和 setRowHidden ().
設置寬度為給定 column 到 width .
該函數在 Qt 4.1 引入。
另請參閱 columnWidth ().
將用於水平 Header (頭部) 的 Widget 設為 header .
另請參閱 horizontalHeader () 和 setVerticalHeader ().
[虛擬]
void
QTableView::
setModel
(
QAbstractItemModel
*
model
)
重實現自 QAbstractItemView::setModel ().
[虛擬]
void
QTableView::
setRootIndex
(const
QModelIndex
&
index
)
重實現自 QAbstractItemView::setRootIndex ().
設置高度為給定 row 到 height .
該函數在 Qt 4.1 引入。
另請參閱 rowHeight ().
若 hide 為 true row 將被隱藏,否則它將被展示。
另請參閱 isRowHidden () 和 setColumnHidden ().
[virtual protected]
void
QTableView::
setSelection
(const
QRect
&
rect
,
QItemSelectionModel::SelectionFlags
flags
)
重實現自 QAbstractItemView::setSelection ().
選擇項基於給定 rect 和根據指定選定 flags .
[虛擬]
void
QTableView::
setSelectionModel
(
QItemSelectionModel
*
selectionModel
)
重實現自 QAbstractItemView::setSelectionModel ().
若 enable 為 True,啓用用於錶格的排序並立即觸發調用 sortByColumn () 按當前排序區間和次序
注意: setter 函數對於特性 sortingEnabled .
另請參閱 isSortingEnabled ().
設置錶格元素的跨度按 ( row , column ) 到行/列數指定通過 ( rowSpanCount , columnSpanCount ).
該函數在 Qt 4.2 引入。
另請參閱 rowSpan () 和 columnSpan ().
將用於垂直 Header (頭部) 的 Widget 設為 header .
另請參閱 verticalHeader () 和 setHorizontalHeader ().
[slot]
void
QTableView::
showColumn
(
int
column
)
展示給定 column .
另請參閱 hideColumn () 和 showRow ().
[slot]
void
QTableView::
showRow
(
int
row
)
展示給定 row .
另請參閱 hideRow () 和 showColumn ().
[virtual protected]
int
QTableView::
sizeHintForColumn
(
int
column
) const
重實現自 QAbstractItemView::sizeHintForColumn ().
返迴大小提示為給定 column 的寬度或 -1 若沒有模型。
若需要把給定列寬度設為固定值,調用 QHeaderView::resizeSection () 在錶格水平 Header (頭部)。
若在子類中重實現此函數,注意,將使用返迴值當 resizeColumnToContents () 或 QHeaderView::resizeSections () 被調用。若水平 Header (頭部) 或項委托要求更大列寬度,將使用更大寬度代替。
另請參閱 QWidget::sizeHint , horizontalHeader (),和 QHeaderView::resizeContentsPrecision ().
[virtual protected]
int
QTableView::
sizeHintForRow
(
int
row
) const
重實現自 QAbstractItemView::sizeHintForRow ().
返迴大小提示為給定 row 的高度或 -1 若沒有模型。
若需要把給定行高度設為固定值,調用 QHeaderView::resizeSection () 在錶格垂直 Header (頭部)。
若在子類中重實現此函數,注意,將僅使用返迴值當 resizeRowToContents () 被調用。在此情況下,若垂直 Header (頭部) 或項委托要求更大行高度,將使用寬度代替。
另請參閱 QWidget::sizeHint , verticalHeader (),和 QHeaderView::resizeContentsPrecision ().
按值排序模型根據給定 column 以給定 order .
該函數在 Qt 4.2 引入。
另請參閱 sortingEnabled .
[virtual protected]
void
QTableView::
timerEvent
(
QTimerEvent
*
event
)
重實現自 QObject::timerEvent ().
[virtual protected]
void
QTableView::
updateGeometries
()
重實現自 QAbstractItemView::updateGeometries ().
返迴錶格視圖的垂直 Header (頭部)。
另請參閱 setVerticalHeader (), horizontalHeader (),和 QAbstractItemModel::headerData ().
[virtual protected]
int
QTableView::
verticalOffset
() const
重實現自 QAbstractItemView::verticalOffset ().
返迴錶格視圖中項的垂直偏移。
注意,錶格視圖使用垂直 Header (頭部) 區間位置,來確定視圖中行的位置。
另請參閱 horizontalOffset ().
[virtual protected]
QStyleOptionViewItem
QTableView::
viewOptions
() const
重實現自 QAbstractItemView::viewOptions ().
[virtual protected]
QSize
QTableView::
viewportSizeHint
() const