Qt类是一个提供所需的像全局变量一样的大量不同的标识符的命名空间。本篇文章介绍的是QTableItem类的使用。
QTableItem包含着一个单元格的数据,缺省情况下是一个字符串和一个象素映射。表项还包括单元格的显示大小和数据对齐方式,同时指定了单元格的EditType和用于内嵌编辑的编辑器(缺省为QLineEdit)。如果你需要多选框,使用QCheckTableItem;需要组合框则使用QComboTableItem。EditType(在构造器中设置的)决定单元格的内容是否可以被编辑;setReplaceable()设置了单元格是否可以被另外一个单元格的内容所替换。
如果指定了象素映射,总是显示在文本在左边。可以分别用setText()和setPixmap()来改变文本或者象素映射。对于文本可以使用setWordWrap()。表项的对齐方式在构造器中设置。
如果你想用自己的部件而不是QLineEdit来编辑单元格内容,那就重新实现createEditor()和setContentFromEditor()。如果要显示定制的内容,就重写paint()。
对表项排序使用了key()函数;缺省情况下返回表项的文本()。重写key()以定制你的表项排序方式。
使用QTable::setItem()把表项插入到表格中。如果你把表项插入到一个已经有表项的单元格中,原有的表项被删去。
例子:
for ( int row = 0; row numRows(); row++ ) {
for ( int col = 0; col numCols(); col++ ) {
table->setItem( row, col,
new QTableItem( table, WhenCurrent, QString::number( row * col ) ) );
}
}
如果要在相同或者不同的表格中把表项从一个单元格移到另一个,可以使用QTable::takeItem()和QTable::setItem(),但是也可以参见QTable::swapCells()。
表项可以以标准删除的方式来删去;表格和单元格将会相应地更新。
表类QTableView用于创建表,头文件,使用该类时必须重写paintCell()函数,该函数用于绘制表元,在QTableView中为虚函数.实现paintCell()函数,必然要用于QPainter类绘制图形QPainter类,头文件
创建简单网格
#include
#include
#include
#include
class MainWin:public QTableView
{
public:
MainWin();
private:
void paintCell(QPainter *,int ,int);
};
MainWin::MainWin()
{
setGeometry(100,100,300,300);
setNumCols(6);//设置表列数
setNumRows(10);//设置表行数
setCellWidth(50);//设置单元格宽度