
如图所示,我想要限制QTableWidget的单元格的输入,比如让用户号码的单元格只能输入0--9这10个数字,且最大只能输入3000,该如何设置呢?
------解决思路----------------------
给表格单元设置代理,比如使用QLineEdit,然后用QLineEdit的setValidator设置正则表达式进行校验。
------解决思路----------------------
QTableWidget可以使用setItemWidget(...)进行设置;
QTableView可以使用setDelegate()进行设置。
这个你要看看模型-视图-代理这个概念了。
------解决思路----------------------
可以考虑用QReg试试
------解决思路----------------------
重载void QTableWidget::itemChanged ( QTableWidgetItem * item ) [signal],在这里面设置item的限制

------解决思路----------------------
主程序里:
WordItemDelegate *wordItem=new WordItemDelegate;
ui->tableView->setItemDelegateForColumn(model->fieldIndex("showword"),wordItem);
.h
class WordItemDelegate : public QStyledItemDelegate
{
Q_OBJECT
public:
explicit WordItemDelegate(QObject *parent = 0);
void setModelData(QWidget * editor, QAbstractItemModel * model, const QModelIndex & index) const;
signals:
public slots:
};
.cpp
void WordItemDelegate::setModelData(QWidget *editor, QAbstractItemModel *model, const QModelIndex &index) const
{
return;
}
你可以在setModelData方法里用正则判断输入值
------解决思路----------------------
对了,我这个代理是用来限制修改的,表格可以进入编辑状态,但是不能修改
------解决思路----------------------
给表格单元设置代理,比如使用QLineEdit,然后用QLineEdit的setValidator设置正则表达式进行校验。
我会用QLineEdit的setValidator设置正则表达式,但如何跟表哥单元设置代理呢?
QTableWidget可以使用setItemWidget(...)进行设置;
QTableView可以使用setDelegate()进行设置。
这个你要看看模型-视图-代理这个概念了。
QTableWidget要使用setCellWidget吧。