Записки программиста Программирование и не только

11Апр/110

QTableWidget. Запрет редактирования столбцов.

Проще всего делается через делегат.

class NonEditTableColumnDelegate : public QItemDelegate
{
    Q_OBJECT
public:
    NonEditTableColumnDelegate(QObject * parent = 0) : QItemDelegate(parent) {}
    virtual QWidget * createEditor ( QWidget *, const QStyleOptionViewItem &,
                                     const QModelIndex &) const
    {
        return 0;
    }
};

Использование:

aTable = new QTableWidget(this);
aTable->setColumnCount(3);
//запрещаем редактирование первого столбца
aTable->setItemDelegateForColumn(0, new NonEditTableColumnDelegate());
//запрещаем редактирование второго столбца
aTable->setItemDelegateForColumn(1, new NonEditTableColumnDelegate());
//итого из трех столбцов редактироваться будет только последний
Метки записи: , , Нет комментариев