1.QTableWidgetItem
(1) 由于QTableWidgetItem没有对内容约束的方法,需要通过QTableWidget对输入内容进行约束,正常的方法为对某一行、某一列或全部设置代理,通过对代理部件设置正则表达式进行约束。
设置约束函数:
某行:setItemDelegateForRow
某列:setItemDelegateForColumn
全部:setItemDelegate
自定义继承自QItemDelegate的类,需要重载3个函数:
1> 创建需要的代理部件
QWidget *createEditor(QWidget *parent, const QStyleOptionViewItem &option, const QModelIndex &index) const;
2> 给代理部件设值
void setEditorData(QWidget *editor, const QModelIndex &index) const;
3> 向模型返回部件的当前值
void setModelData(QWidget *editor, QAbstractItemModel *model, const QModelIndex &index) const;
(2) 使用正则表达式,对部件进行个性化约束。如QLineEdit
editor->setValidator(new QRegularExpressionValidator(QRegularExpression("^-?\\d+(\\.\\d+)?$"), parent));
2.