//! [0]
    for (int row = 0; row < table->numRows(); row++) {
        for (int col = 0; col < table->numCols(); col++) {
            table->setItem(row, col,
                new Q3TableItem(table, Q3TableItem::WhenCurrent, QString::number(row * col)));
        }
    }
//! [0]


//! [1]
    QWidget* MyTableItem::createEditor() const
    {
        QHBox* hbox = new QHBox(table()->viewport());
        hbox->setFocusProxy(new QLineEdit(hbox));
        new QLineEdit(hbox);
        return hbox;
    }
//! [1]


//! [2]
    p->setClipRect(table()->cellRect(row, col), QPainter::ClipPainter);
    //... your drawing code
    p->setClipping(false);
//! [2]


//! [3]
    Q3Table *table = new Q3Table(100, 250, this);
    table->setPixmap(3, 2, pix);
    table->setText(3, 2, "A pixmap");
//! [3]


//! [4]
    p->setClipRect(cellRect(row, col), QPainter::CoordPainter);
    //... your drawing code
    p->setClipping(false);
//! [4]


//! [5]
    Q3TableItem *i = item(row, col);
    if (initFromCell || (i && !i->isReplaceable()))
        // If we had a Q3TableItem ask the base class to create the editor
        return Q3Table::createEditor(row, col, initFromCell);
    else
        return ...(create your own editor)
//! [5]


