部件输入内容约束的持续整理

文章介绍了如何在QTableWidget中通过QTableWidgetItem进行内容约束,包括设置代理部件、自定义QItemDelegate重写createEditor、setEditorData和setModelData方法,以及如何使用正则表达式对QLineEdit进行个性化约束。
摘要由CSDN通过智能技术生成

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.

 

  • 9
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值