📄 qtable.html
字号:
<h3 class=fn>void <a name="contentsDragLeaveEvent"></a>QTable::contentsDragLeaveEvent ( <a href="qdragleaveevent.html">QDragLeaveEvent</a> * e )<tt> [virtual protected]</tt></h3>本事件处理者当一个拖拉动作伴随事件<em>e</em>离开<em>这个</em>QTable对象时调用。<p>由<a href="qscrollview.html#contentsDragLeaveEvent">QScrollView</a>处重新实现。<h3 class=fn>void <a name="contentsDragMoveEvent"></a>QTable::contentsDragMoveEvent ( <a href="qdragmoveevent.html">QDragMoveEvent</a> * e )<tt> [virtual protected]</tt></h3>本事件处理者当QTable对象接收到一个<a href="qdragmoveevent.html">QDragMoveEvent</a> <em>e</em>时调用,也就是说,当用户确实拖拽了鼠标的时候。<p>焦点移到<a href="qdragmoveevent.html">QDragMoveEvent</a>所发生的单元格处。<p>由<a href="qscrollview.html#contentsDragMoveEvent">QScrollView</a>处重新实现。<h3 class=fn>void <a name="contentsDropEvent"></a>QTable::contentsDropEvent ( <a href="qdropevent.html">QDropEvent</a> * e )<tt> [virtual protected]</tt></h3>本事件处理者当用户以在<em>这个</em>QTable上放置什么东西来结束一次拖放,并从而触发了这个放置事件<em>e</em>的时候调用。<p>由<a href="qscrollview.html#contentsDropEvent">QScrollView</a>处重新实现。<h3 class=fn>void <a name="contextMenuRequested"></a>QTable::contextMenuRequested ( int row, int col, const <a href="qpoint.html">QPoint</a> & pos )<tt> [signal]</tt></h3><p>当用户用鼠标右键(或者一个系统特定键盘键)调用上下文菜单(context menu)时,本信号被发送。事件发生的单元格在<em>row</em>、<em>col</em>处。<em>pos</em>是上下文菜单在全局坐标系统中的出现位置。<h3 class=fn><a href="qwidget.html">QWidget</a> * <a name="createEditor"></a>QTable::createEditor ( int row, int col, bool initFromCell ) const<tt> [virtual protected]</tt></h3>返回一个部件,可以用作在<em>row</em>、<em>col</em>处的单元格的内容编辑器。<p>若<em>initFromCell</em>为TRUE,该编辑器用于编辑此单元格的当前内容(这样编辑器部件就应该使用该内容作为初始值)。若<em>initFromCell</em>为FALSE,单元格的内容被用户在本函数生成的部件中新输入的内容所替代。<p>缺省的功能描述如下:如果<em>initFromCell</em>为TRUE,或者单元格包含一个<a href="qtableitem.html">QTableItem</a>并且该表项的<a href="qtableitem.html#isReplaceable">QTableItem::isReplaceable</a>()为FALSE,那么该单元格被要求生成一个适当的编辑器(使用<a href="qtableitem.html#createEditor">QTableItem::createEditor</a>())。否则<a href="qlineedit.html">QLineEdit</a>被用作编辑器。<p>如果要为单元格创建你自己的编辑器,需要实现定制的QTableItem子类和重写QTableItem::createEditor()。<p>如果不使用QTableItem,而且不想使用QLineEdit作为缺省的编辑器,需要写QTable的子类和用类似下面的代码重写本函数:<pre> <a href="qtableitem.html">QTableItem</a> *i = <a href="#item">item</a>( row, col ); if ( initFromCell || ( i && !i-><a href="qtableitem.html#isReplaceable">isReplaceable</a>() ) ) // If we had a QTableItem ask the base class to create the editor return QTable::createEditor( row, col, initFromCell ); else return ...(create your editor) </pre> 编辑器部件的所有权被传递给调用者。<p>如果重写了本函数,对于只读的单元格要返回0。你将需要重写<a href="#setCellContentFromEditor">setCellContentFromEditor</a>()以得到用户的输入数据。<p> <p>也参见<a href="qtableitem.html#createEditor">QTableItem::createEditor</a>()。<h3 class=fn>int <a name="currEditCol"></a>QTable::currEditCol () const<tt> [protected]</tt></h3>返回当前被编辑的列。<h3 class=fn>int <a name="currEditRow"></a>QTable::currEditRow () const<tt> [protected]</tt></h3>返回当前被编辑的行。<h3 class=fn>void <a name="currentChanged"></a>QTable::currentChanged ( int row, int col )<tt> [signal]</tt></h3> <p>当当前单元格已变为<em>row</em>、<em>col</em>时,本信号被发送。<p>例子:<a href="tutorial2-08.html#x2518">chart/setdataform.cpp</a>。<h3 class=fn>int <a name="currentColumn"></a>QTable::currentColumn () const</h3> <p>返回当前列。<p> <p>也参见<a href="#currentRow">currentRow</a>()。<p>例子:<a href="tutorial2-08.html#x2519">chart/setdataform.cpp</a>。<h3 class=fn>int <a name="currentRow"></a>QTable::currentRow () const</h3> <p>返回当前行。<p> <p>也参见<a href="#currentColumn">currentColumn</a>()。<p>例子:<a href="tutorial2-08.html#x2520">chart/setdataform.cpp</a>。<h3 class=fn>int <a name="currentSelection"></a>QTable::currentSelection () const<tt> [virtual]</tt></h3>返回当前选中区域的个数,如果没有则返回-1。<p> <p>也参见<a href="#numSelections">numSelections</a>()。<h3 class=fn>void <a name="doubleClicked"></a>QTable::doubleClicked ( int row, int col, int button, const <a href="qpoint.html">QPoint</a> & mousePos )<tt> [signal]</tt></h3> <p>当鼠标按键<em>button</em>被双击时,本信号被发送。事件发生所在的单元格在<em>row</em>、<em>col</em>,鼠标位置在<em>mousePos</em>结构里。<h3 class=fn>bool <a name="dragEnabled"></a>QTable::dragEnabled () const<tt> [slot]</tt></h3>如果本函数返回TRUE,则表格支持拖拽。<p> <p>也参见<a href="#setDragEnabled">setDragEnabled</a>()。<h3 class=fn><a href="qdragobject.html">QDragObject</a> * <a name="dragObject"></a>QTable::dragObject ()<tt> [virtual protected]</tt></h3>如果用户对一个选中的单元格按下鼠标键,开始移动(也就是拖拽),并且<a href="#dragEnabled">dragEnabled</a>()为TRUE,本函数被调用,以得到一个拖拽对象。一次使用该对象的拖拽立即开始,除非<a href="#dragObject">dragObject</a>()返回0。<p>缺省情况下本函数返回0。你可以重新实现它,依所选表项来生成一个<a href="qdragobject.html">QDragObject</a>。<p> <p>也参见<a href="#dropped">dropped</a>()。<h3 class=fn>void <a name="drawContents"></a>QTable::drawContents ( <a href="qpainter.html">QPainter</a> * p, int cx, int cy, int cw, int ch )<tt> [virtual protected]</tt></h3>在画具(painter)<em>p</em>上绘制表格内容。本函数已优化,从而只绘制在位置<em>cx</em>、<em>cy</em>的,宽<em>cw</em>象素,高<em>ch</em>象素的裁减矩形内的单元格。<p>另外,<a href="#drawContents">drawContents</a>()高亮显示当前单元格。<p>由<a href="qscrollview.html#drawContents">QScrollView</a>处重新实现。<h3 class=fn>void <a name="dropped"></a>QTable::dropped ( <a href="qdropevent.html">QDropEvent</a> * e )<tt> [signal]</tt></h3> <p>当表格上发生一次放置事件时,本信号被发送。<p><em>e</em>包含了放置事件的信息。<h3 class=fn>void <a name="editCell"></a>QTable::editCell ( int row, int col, bool replace = FALSE )<tt> [virtual slot]</tt></h3>开始编辑在<em>row</em>、<em>col</em>处的单元格。<p>如果<em>replace</em>为TRUE,编辑结束时单元格的内容将被编辑器的内容替代,也就是说,用户将输入新的数据;否则,单元格的当前内容(如果有的话)将在编辑器里被修改。<p> <p>也参见<a href="#beginEdit">beginEdit</a>()。<h3 class=fn><a href="qtable.html#EditMode-enum">EditMode</a> <a name="editMode"></a>QTable::editMode () const<tt> [protected]</tt></h3>返回当前编辑模式。<h3 class=fn>void <a name="endEdit"></a>QTable::endEdit ( int row, int col, bool accept, bool replace )<tt> [virtual protected]</tt></h3>当在<em>row</em>、<em>col</em>处的单元格的内嵌编辑被要求停止时,本函数被调用。<p>如果该单元格未被编辑,或者<em>accept</em>为FALSE,函数返回,单元格的内容保持不变。<p>如果<em>accept</em>为TRUE,编辑器的内容一定要传递给响应的单元格。如果<em>replace</em>为TRUE,该单元格的内容应该被编辑器的内容替代(这意味着删去该单元格的<a href="qtableitem.html">QTableItem</a>而新建一个);否则(如果可能的话),编辑器的内容应该只放到该单元格已经存在的QTableItem中。<p>如果该单元格的内容应该被替换,或者没有QTableItem,那么<a href="#setCellContentFromEditor">setCellContentFromEditor</a>()被调用。否则,对于该单元格的QTableItem,<a href="qtableitem.html#setContentFromEditor">QTableItem::setContentFromEditor</a>()被调用。<p>最后,<a href="#clearCellWidget">clearCellWidget</a>()被调用,以删去编辑器部件。<p> <p>也参见<a href="#setCellContentFromEditor">setCellContentFromEditor</a>()和<a href="#beginEdit">beginEdit</a>()。<h3 class=fn>void <a name="ensureCellVisible"></a>QTable::ensureCellVisible ( int row, int col )</h3>滚动表格,使得在<em>row</em>、<em>col</em>处的单元格可见。<h3 class=fn><a href="qtable.html#FocusStyle-enum">FocusStyle</a> <a name="focusStyle"></a>QTable::focusStyle () const</h3><p>返回当前(焦点)单元格如何被绘制。详情参见<a href="qtable.html#focusStyle-prop">"focusStyle"</a>属性。<h3 class=fn>void <a name="hideColumn"></a>QTable::hideColumn ( int col )<tt> [virtual slot]</tt></h3>隐藏列<em>col</em>。<p> <p>也参见<a href="#showColumn">showColumn</a>()和<a href="#hideRow">hideRow</a>()。<h3 class=fn>void <a name="hideRow"></a>QTable::hideRow ( int row )<tt> [virtual slot]</tt></h3>隐藏行<em>row</em>。<p> <p>也参见<a href="#showRow">showRow</a>()和<a href="#hideColumn">hideColumn</a>()。<h3 class=fn><a href="qheader.html">QHeader</a> * <a name="horizontalHeader"></a>QTable::horizontalHeader () const</h3>返回表格的顶部<a href="qheader.html">QHeader</a>。<p>该标题包含列标。<p>要修改列标,使用<a href="qheader.html#setLabel">QHeader::setLabel</a>(),例如,<pre> <a href="#horizontalHeader">horizontalHeader</a>()->setLabel( 0, tr( "File" ) );</pre><p> <p>也参见<a href="#verticalHeader">verticalHeader</a>()、<a href="#setTopMargin">setTopMargin</a>()和<a href="qheader.html">QHeader</a>。<p>例子:<a href="tutorial2-08.html#x2521">chart/setdataform.cpp</a>和<a href="small-table-example-example.html#x2648">table/small-table-demo/main.cpp</a>。<h3 class=fn>int <a name="indexOf"></a>QTable::indexOf ( int row, int col ) const<tt> [protected]</tt></h3>返回单一整数,它通过把二维的表格映射为一维数组来标识详细的<em>row</em>和<em>col</em>。
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -