一篇学会QT使用--设计师自定义控件之控件文本控制(QT自定义控件)(三)

管理控件文本

接上文:https://blog.csdn.net/MelyLenient/article/details/124204585
我们已经初步创建完毕控件基本框架。
接下来就是对文本进行控制。
本文学习对文本的更改加以限制。

添加槽函数

对我们控件中的每一个文本框添加一个数值更改触发的槽函数,这样随时可以对输入框中的数据进行监控校验。
添加槽函数教学:如何添加槽函数
我们一共添加四个槽函数:槽函数名称如图所示。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

将槽函数加入到主文件

分别添加到h文件和c文件中。
在这里插入图片描述
在这里插入图片描述

对内容进行处理

按照上述完成后,我们就获得了针对该控件四个文本框内容改变时数据处理的空槽函数。
接下来根据我们的需要对其进行处理即可。
我们要做一个IP控件。那么为了方便,我们使用正则校验对其进行数据输入限制。
首先添加相应的头文件

#include <QRegExpValidator>

为每个文本框添加正则校验。

void MelyPlug::ip1_changed(const QString& arg1)
{
	QRegExp regExp("^((25[0-5]|2[0-4]\\d|[1]{1}\\d{1}\\d{1}|[1-9]{1}\\d{1}|\\d{1})($|(?!\\.$)\\.))$");
	ui.lineEdit->setValidator(new QRegExpValidator(regExp));
}

void MelyPlug::ip2_changed(const QString& arg1)
{
	QRegExp regExp("^((25[0-5]|2[0-4]\\d|[1]{1}\\d{1}\\d{1}|[1-9]{1}\\d{1}|\\d{1})($|(?!\\.$)\\.))$");
	ui.lineEdit_2->setValidator(new QRegExpValidator(regExp));
}

void MelyPlug::ip3_changed(const QString& arg1)
{
	QRegExp regExp("^((25[0-5]|2[0-4]\\d|[1]{1}\\d{1}\\d{1}|[1-9]{1}\\d{1}|\\d{1})($|(?!\\.$)\\.))$");
	ui.lineEdit_3->setValidator(new QRegExpValidator(regExp));
}

void MelyPlug::ip4_changed(const QString& arg1)
{
	QRegExp regExp("^((25[0-5]|2[0-4]\\d|[1]{1}\\d{1}\\d{1}|[1-9]{1}\\d{1}|\\d{1})($|(?!\\.$)\\.))$");
	ui.lineEdit_4->setValidator(new QRegExpValidator(regExp));
}

注意,这里的ui不是指针类型,因为我们h文件声明的ui不是指针,如果h文件声明的ui是指针类型,代码应该如下

ui->lineEdit->setValidator(new QRegExpValidator(regExp));

重新生成插件相关文件后,依据上文一篇学会QT使用–设计师自定义控件(QT自定义控件)(二)
更新插件。然后启动测试项目。
在控件中会发现,我们每个项目所能输入最大值为255.
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值