//检查器类 class GLineEditItemDelegate : public QItemDelegate { private: QValidator *mpValidator; // 检查器 QLineEdit *mpCurrent; public: QWidget * createEditor(QWidget * parent, const QStyleOptionViewItem &option, const QModelIndex & index) const { QLineEdit *edit = new QLineEdit(parent); edit->setValidator(mpValidator); // 此行编辑设置为仅接受验证器mpValidator所约束的输入 return edit; } public: GLineEditItemDelegate(QObject *parent) : QItemDelegate(parent) { mpValidator = NULL; mpCurrent = NULL; } GLineEditItemDelegate(QValidator *validator, QObject *parent) : QItemDelegate(parent) { mpValidator = validator; mpCurrent = NULL; } QValidator * validator() { return mpValidator; } void setValidator(QValidator *validator) { mpValidator = validator; } };