📄 qtableitem.html
字号:
{ // create an editor - a combobox in our case ( (ComboItem*)this )->cb = new <a href="qcombobox.html">QComboBox</a>( <a href="#table">table</a>()->viewport() ); QObject::<a href="qobject.html#connect">connect</a>( cb, SIGNAL( activated( int ) ), table(), SLOT( doValueChanged() ) ); cb->insertItem( "Yes" ); cb->insertItem( "No" ); // and initialize it cb->setCurrentItem( <a href="#text">text</a>() == "No" ? 1 : 0 ); return cb;</pre><p> <p>也参见<a href="qtable.html#createEditor">QTable::createEditor</a>()、<a href="#setContentFromEditor">setContentFromEditor</a>()和<a href="qscrollview.html#viewport">QTable::viewport</a>()。<p>例子:<a href="qtableitem.html#x2448">table/statistics/statistics.cpp</a>。<h3 class=fn><a href="qtableitem.html#EditType-enum">EditType</a> <a name="editType"></a>QTableItem::editType () const</h3>返回表项的编辑类型。<p>这是在表项构造时设置的。<p> <p>也参见<a href="#EditType-enum">EditType</a>和<a href="#QTableItem">QTableItem</a>()。<h3 class=fn>bool <a name="isEnabled"></a>QTableItem::isEnabled () const</h3>如果表项为激活,返回TRUE;否则返回FALSE。<p> <p>也参见<a href="#setEnabled">setEnabled</a>()。<h3 class=fn>bool <a name="isReplaceable"></a>QTableItem::isReplaceable () const</h3>本函数返回的是,单元格的内容是否能被另一个表项的内容替换。跨越多个单元格的表项不管这个设置,其内容不能被另一个表项替换。<p>(这不同于<a href="#EditType-enum">EditType</a>,因为EditType是关于<em>用户</em>是否能改变单元格的内容。)<p> <p>也参见<a href="#setReplaceable">setReplaceable</a>()和<a href="#EditType-enum">EditType</a>。<h3 class=fn><a href="qstring.html">QString</a> <a name="key"></a>QTableItem::key () const<tt> [virtual]</tt></h3>本虚拟函数返回用于排序的关键字。缺省的实现是返回相关表项的<a href="#text">text</a>()。<p> <p>也参见<a href="qtable.html#sorting-prop">QTable::sorting</a>。<h3 class=fn>void <a name="paint"></a>QTableItem::paint ( <a href="qpainter.html">QPainter</a> * p, const <a href="qcolorgroup.html">QColorGroup</a> & cg, const <a href="qrect.html">QRect</a> & cr, bool selected )<tt> [virtual]</tt></h3>本虚拟函数用于在矩形区域<em>cr</em>内绘制一个表项的内容,使用的画具为<em>p</em>,颜色组为<em>cg</em>。<p>若<em>selected</em>为TRUE,单元格高亮显示。<p>通常不必使用本函数,但如果要绘制单元格的定制内容,你就需要重写。<p>注意:为提高效率,该画具缺省并未剪裁。如果需要剪裁,使用<p> <pre> p->setClipRect( <a href="#table">table</a>()->cellRect(row, col), QPainter::ClipPainter ); //... your drawing code p->setClipping( FALSE ); </pre> <p> <p>例子:<a href="statistics-example.html#x2633">table/statistics/statistics.cpp</a>。<h3 class=fn><a href="qpixmap.html">QPixmap</a> <a name="pixmap"></a>QTableItem::pixmap () const<tt> [virtual]</tt></h3>返回表项的象素映射,如果没有则是一个空象素映射。<p> <p>也参见<a href="#setPixmap">setPixmap</a>()和<a href="#text">text</a>()。<h3 class=fn>int <a name="row"></a>QTableItem::row () const</h3>返回表项所在行。如果单元格跨越多行,本函数返回最上一行。<p> <p>也参见<a href="#col">col</a>()和<a href="#setRow">setRow</a>()。<h3 class=fn>int <a name="rowSpan"></a>QTableItem::rowSpan () const</h3>返回表项跨越的行数,通常是1。<p> <p>也参见<a href="#setSpan">setSpan</a>()和<a href="#colSpan">colSpan</a>()。<h3 class=fn>int <a name="rtti"></a>QTableItem::rtti () const<tt> [virtual]</tt></h3>返回这个表项的运行时类型判别(Returns the Run Time Type Identification)值,对于QTableItem为0。<p>尽管经常被主张正统的人(purist)所不取,对于QTable来说,运行时类型判别还是很有用的,原因是它考虑了有效的索引存储机制。<p>当你基于QTableItem生成子类时,确保每一个子类返回一个唯一的<a href="#rtti">运行时类型判别rtti</a>()值。建议使用大于1000的值,最好是大的随机数,以允许对该类的扩展。<p> <p>也参见<a href="qchecktableitem.html#rtti">QCheckTableItem::rtti</a>()和<a href="qcombotableitem.html#rtti">QComboTableItem::rtti</a>()。<p>在<a href="qcombotableitem.html#rtti">QComboTableItem</a>和<a href="qchecktableitem.html#rtti">QCheckTableItem</a>中被重写。<h3 class=fn>void <a name="setCol"></a>QTableItem::setCol ( int c )<tt> [virtual]</tt></h3>设置列<em>c</em>为表项的列。通常不必调用本函数。<p>如果单元格跨越多列,本函数设置最左一列,并保持该多单元格表项的宽度。<p> <p>也参见<a href="#col">col</a>()、<a href="#setRow">setRow</a>()和<a href="#colSpan">colSpan</a>()。<h3 class=fn>void <a name="setContentFromEditor"></a>QTableItem::setContentFromEditor ( <a href="qwidget.html">QWidget</a> * w )<tt> [virtual]</tt></h3>只要单元格的内容被编辑器<em>w</em>编辑过,<a href="qtable.html">QTable</a>调用本虚拟函数,把新值拷贝到QTableItem中。<p>如果你重写了<a href="#createEditor">createEditor</a>(),而且返回的不是<a href="qlineedit.html">QLineEdit</a>,你几乎肯定要重写本函数。<p> <pre> void ComboItem::<a href="#setContentFromEditor">setContentFromEditor</a>( <a href="qwidget.html">QWidget</a> *w ) { // the user changed the value of the combobox, so synchronize the // value of the item (its text), with the value of the combobox if ( w-><a href="qobject.html#inherits">inherits</a>( "QComboBox" ) ) <a href="#setText">setText</a>( ( (QComboBox*)w )->currentText() ); else QTableItem::<a href="#setContentFromEditor">setContentFromEditor</a>( w );</pre><p> <p>也参见<a href="qtable.html#setCellContentFromEditor">QTable::setCellContentFromEditor</a>()。<p>例子:<a href="statistics-example.html#x2634">table/statistics/statistics.cpp</a>。<h3 class=fn>void <a name="setEnabled"></a>QTableItem::setEnabled ( bool b )<tt> [virtual]</tt></h3>如果<em>b</em>为TRUE,该表项被激活;如果<em>b</em>为FALSE,该表项被设为失效。<p>失效的表项不响应用户交互。<p> <p>也参见<a href="#isEnabled">isEnabled</a>()。<h3 class=fn>void <a name="setPixmap"></a>QTableItem::setPixmap ( const <a href="qpixmap.html">QPixmap</a> & p )<tt> [virtual]</tt></h3>设置象素映射<em>p</em>为本表项的象素映射。<p>注意:<a href="#setPixmap">setPixmap</a>()并没有更新表项所属的单元格。使用<a href="qtable.html#updateCell">QTable::updateCell</a>()来重绘单元格内容。<p>对于<a href="qcombotableitem.html">QComboTableItem</a>和<a href="qchecktableitem.html">QCheckTableItem</a>,本函数没有可见的影响。<p> <p>也参见<a href="qtable.html#setPixmap">QTable::setPixmap</a>()、<a href="#pixmap">pixmap</a>()和<a href="#setText">setText</a>()。<h3 class=fn>void <a name="setReplaceable"></a>QTableItem::setReplaceable ( bool b )<tt> [virtual]</tt></h3>如果<em>b</em>为TRUE,可以用一个QTableItem的内容来替换另一个单元格的内容。如果<em>b</em>为FALSE,则不可以。跨越多个单元格的表项,其内容不能被其他表项替换。<p>(这不同于<a href="#EditType-enum">EditType</a>,因为EditType是关于<em>用户</em>是否能改变单元格的内容。)<p> <p>也参见<a href="#isReplaceable">isReplaceable</a>()。<h3 class=fn>void <a name="setRow"></a>QTableItem::setRow ( int r )<tt> [virtual]</tt></h3>设置行<em>r</em>为表项的行。通常不必调用本函数。<p>如果单元格跨越多行,本函数设置最上一行,并保持该多单元格表项的高度。<p> <p>也参见<a href="#row">row</a>()、<a href="#setCol">setCol</a>()和<a href="#rowSpan">rowSpan</a>()。<h3 class=fn>void <a name="setSpan"></a>QTableItem::setSpan ( int rs, int cs )<tt> [virtual]</tt></h3>改变该QTableItem的范围,使其跨越多个单元格,覆盖<em>rs</em>个行和<em>cs</em>个列。左上的单元格为原始单元格。<p> <b>警告:</b>只有当表项已经使用例如<a href="qtable.html#setItem">QTable::setItem</a>()等方法插入到表格中时,本函数才起作用。本函数也核对以确保<em>rs</em>行和<em>cs</em>列在表格范围内,如果不是则不改变跨越而直接返回。<p> <p>也参见<a href="#rowSpan">rowSpan</a>()和<a href="#colSpan">colSpan</a>()。<h3 class=fn>void <a name="setText"></a>QTableItem::setText ( const <a href="qstring.html">QString</a> & str )<tt> [virtual]</tt></h3>把表项的文本改变为<em>str</em>。<p>注意在;<a href="#setText">setText</a>()并没有更新表项所属的单元格。使用<a href="qtable.html#updateCell">QTable::updateCell</a>()来重绘单元格内容。<p> <p>也参见<a href="qtable.html#setText">QTable::setText</a>()、<a href="#text">text</a>()、<a href="#setPixmap">setPixmap</a>()和<a href="qtable.html#updateCell">QTable::updateCell</a>()。<p>例子:<a href="statistics-example.html#x2635">table/statistics/statistics.cpp</a>。<h3 class=fn>void <a name="setWordWrap"></a>QTableItem::setWordWrap ( bool b )<tt> [virtual]</tt></h3>如果<em>b</em>为TRUE,单元格的文本将在必要时多行自动回行,以适应单元格的宽度;否则文本将只在一行内显示。<p> <p>也参见<a href="#wordWrap">wordWrap</a>()、<a href="qtable.html#adjustColumn">QTable::adjustColumn</a>()和<a href="qtable.html#setColumnStretchable">QTable::setColumnStretchable</a>()。<h3 class=fn><a href="qsize.html">QSize</a> <a name="sizeHint"></a>QTableItem::sizeHint () const<tt> [virtual]</tt></h3>本虚拟函数单元格要显示全部内容所需要的大小。<p>如果写QTableItem的子类,一般要重写本函数。<h3 class=fn><a href="qtable.html">QTable</a> * <a name="table"></a>QTableItem::table () const</h3> <p>返回该表项所属的<a href="qtable.html">QTable</a>。<p> <p>也参见<a href="qtable.html#setItem">QTable::setItem</a>()和<a href="#QTableItem">QTableItem</a>()。<h3 class=fn><a href="qstring.html">QString</a> <a name="text"></a>QTableItem::text () const<tt> [virtual]</tt></h3>提供该表项的文本,如果没有文本则是一个空字符串。<p>如果editMode()为<a href="#EditType-enum">Always</a>,之前<a href="#setContentFromEditor">setContentFromEditor</a>()被调用,以使编辑器的当前值被返回。<p>如果editMode()是别的,而且单元格的编辑器激活,那么如果编辑器不是<a href="qlineedit.html">QLineEdit</a>,setContentFromEditor()就被调用。这意味着,在这种情况下,如果用户输入文本,那么直到用户认可新数据(比如说按下回车或者Tab键),<a href="#text">text</a>()返回的都是表项的原始值。对于其他的编辑器(例如组合框),setContentFromEditor()总是被调用,所以也总是返回编辑器当前显示的值。<p> <p>也参见<a href="#setText">setText</a>()和<a href="#pixmap">pixmap</a>()。<h3 class=fn>bool <a name="wordWrap"></a>QTableItem::wordWrap () const</h3>如果单元格能自动回行,返回TRUE;否则返回FALSE。<p> <p>也参见<a href="#setWordWrap">setWordWrap</a>()。<!-- eof --><p><address><hr><div align=center><table width=100% cellspacing=0 border=0><tr><td>Copyright © 2002 <a href="http://www.trolltech.com">Trolltech</a><td><a href="http://www.trolltech.com/trademarks.html">Trademarks</a><td><a href="zh_CN.html">译者:farfareast</a><td align=right><div align=right>Qt 3.0.5版</div></table></div></address></body></html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -