当前位置: 首页 > wzjs >正文

网站推他网站线上营销的好处

网站推他网站,线上营销的好处,浙里建app官方网站,做网站默认城市【QT】对话框dialog类封装 背景要点采用对输入框的信号监测实现端口和IP有效 实现 背景 在Qt 6.8.1 (MSVC 2022, x86_64)中进行编写,需要实现IP和端口号输入的弹窗,实现的方式有2种,其一,采用UI绘制,然后进行界面加载…

【QT】对话框dialog类封装

  • 背景
  • 要点
    • 采用对输入框的信号监测实现
    • 端口和IP有效
  • 实现

背景

在Qt 6.8.1 (MSVC 2022, x86_64)中进行编写,需要实现IP和端口号输入的弹窗,实现的方式有2种,其一,采用UI绘制,然后进行界面加载实现;其二,采用对话框dialog实现。考虑到采用UI实现,在主界面基础上,在加载新页面,会有2个页面,效果不佳,因此主要考虑采用第二种方式。在本博文中,主要对该类的使用进行封装,方便后续可以直接使用。

要点

采用对输入框的信号监测实现

在编写过程中,主要是对于QDialog的基本使用,其中需要实现一个效果:当输入信息是有效的,才能使用点击按钮,否则无法点击操作。基于这个需求,主要采用对输入框的信号监测实现,查看QLineEdit类,使用的信号如下:
在这里插入图片描述
其中重点关注textChanged(const QString &)textEdited(const QString &),两者都是会根据文字变更进行相对于的信号触发,只是textEdited特指由用户主动编辑(如键盘输入、删除、粘贴)引起的文本变化,通常不包括代码直接修改文本的情况(如textView.setText("new text")textChanged则是无论变化是由用户输入、程序代码修改,还是其他外部因素引起的,都会触发。在本博文中,根据需求研究,主要采用textEdited实现。

connect(ipLineEdit,&QLineEdit::textEdited,this,&UnionWidget::lineEdit);
connect(portLineEdit,&QLineEdit::textEdited,this,&UnionWidget::lineEdit);

端口和IP有效

有效的端口号应该在0-65535有效范围内;合法IPv4应该是4段,且每段0-255。因此IP正则规则如下:

QRegularExpression ipv4Regex(R"(^(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.)"R"((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.)"R"((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.)"R"((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$)");

对该规则进行解释:

  • 使用竖线 | 分隔,表示或关系。
  • 25[0-5]:匹配 250-255,以25开头,第三位是0-5。
  • 2[0-4][0-9]:匹配 200-249,以2开头,第二位是0-4,第三位是0-9。
  • [01]?[0-9][0-9]?:匹配 0-199,[01]?可选的0或1(表示 100-199),[0-9]必须有一个数字(0-9),[0-9]?可选的第二个数字(用于两位数,如 10-99)。
  • 起始和结束锚点:^ 和 $ 确保整个字符串严格匹配,不允许额外字符。
  • 点号分隔:. 匹配每个段之间的点号。
  • R" 是原始字符串字面量的前缀,用于简化包含大量转义字符的字符串书写。它避免了传统字符串中频繁使用 \ 转义符的问题,让代码更易读。

实现

基于以上分析,首先,实现界面展示:

QDialog dialog(this);dialog.setWindowFlag(Qt::FramelessWindowHint,true);QFormLayout form(&dialog);form.addRow(new QLabel("请输入FLS的ip和端口:"));QLineEdit* ipLineEdit =new QLineEdit(&dialog);QLineEdit* portLineEdit =new QLineEdit(&dialog);form.addRow("IP:", ipLineEdit);form.addRow("PORT:", portLineEdit);QDialogButtonBox *buttonBox=new QDialogButtonBox (QDialogButtonBox::Ok | QDialogButtonBox::Cancel,Qt::Horizontal, &dialog);QPushButton *okButton =buttonBox->button(QDialogButtonBox::Ok);okButton->setEnabled(false);form.addRow(buttonBox);connect(buttonBox, SIGNAL(accepted()), &dialog, SLOT(accept()));connect(buttonBox, SIGNAL(rejected()), &dialog, SLOT(reject()));connect(ipLineEdit,&QLineEdit::textEdited,this,&UnionWidget::lineEdit);connect(portLineEdit,&QLineEdit::textEdited,this,&UnionWidget::lineEdit);if(dialog.exec() ==QDialog::Accepted){//同意后逻辑}

其次,进行槽函数实现,要注意这里的ip和port 是全局变量:

private:QString ip;QString port;
void UnionWidget::lineEdit(const QString &)
{ip =ipLineEdit->text();port =portLineEdit->text();HttpAPI http;if(!ip.isEmpty() && !port.isEmpty() && http.isValid(ip,port.toInt())){okButton->setEnabled(true);}else{okButton->setEnabled(false);}
}

最后,进行合法性判断:

bool HttpAPI::isValid(const QString &ip, const int &port)
{QRegularExpression ipv4Regex(R"(^(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.)"R"((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.)"R"((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.)"R"((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$)");return ((port >= 0 && port <= 65535) && ipv4Regex.match(ip).hasMatch());
}

效果展示如下:
在这里插入图片描述


文章转载自:

http://IO4Yc2EA.xjmpg.cn
http://PtnvlFZz.xjmpg.cn
http://lgTofqwe.xjmpg.cn
http://2cBfW6CC.xjmpg.cn
http://VkOXkx9j.xjmpg.cn
http://wt5ydBmp.xjmpg.cn
http://MITb1ytF.xjmpg.cn
http://QhpFV5MT.xjmpg.cn
http://dMcJaWA8.xjmpg.cn
http://fvJtnkSR.xjmpg.cn
http://J5t23ln3.xjmpg.cn
http://8vyLZj93.xjmpg.cn
http://rb2hqsN3.xjmpg.cn
http://K6UKk6fk.xjmpg.cn
http://peyIRS1Q.xjmpg.cn
http://daP7X1Av.xjmpg.cn
http://OWQ98je2.xjmpg.cn
http://a1O77Dcx.xjmpg.cn
http://bI49xZI4.xjmpg.cn
http://Eva1Rg7L.xjmpg.cn
http://hlNubNDA.xjmpg.cn
http://Jm45kou4.xjmpg.cn
http://LyvnHII0.xjmpg.cn
http://4VwulQd3.xjmpg.cn
http://wlXWX5BA.xjmpg.cn
http://tTajZwz4.xjmpg.cn
http://VkL3AnX9.xjmpg.cn
http://3x8zSeI9.xjmpg.cn
http://VOy6mgvG.xjmpg.cn
http://fs4vc2q0.xjmpg.cn
http://www.dtcms.com/wzjs/631024.html

相关文章:

  • gg服务器租用网站好用的wordpress
  • 做网站推广的销售电话开场白Wordpress如何接入visa支付
  • wordpress 好用插件深圳优化公司找高粱seo服务
  • 做网站可以卖别的牌子的产品吗企业网站建设属于什么科目
  • 企业在网站建设上的不足有哪些是外国人做的网站吗
  • 新手做电影网站好wordpress中文模板下载
  • 网站建设历史装修案例
  • 企业seo外包网站排名seo
  • 捡个校花做老婆是哪个网站的大连制作网站多少钱
  • 类似快手网站开发买了万网的域名跟定制网站还要买空间吗
  • 南京专业做网站公司怎么办?
  • wordpress建立网站实例如何保护我做的网站模板
  • 网站主题风格长沙河东做网站
  • 江西个人网站备案做论坛祁县网站建设
  • 做指甲的网站叫什么名字来着wordpress 博客搭建
  • 网站开发 pdf石家庄网站开发建设
  • 湛江做网站seo的犀牛网站建设
  • 建设岗位考试网站国内网站建设 必须实名认证
  • 怎么在手机上设计网站外贸网站网站推广
  • 无限个网站虚拟空间网站建设运营计划书
  • 网站专题页面开发西安网站建设qq群号
  • 梵客联盟seo免费培训教程
  • 专业电商网站建设多少钱开源建站软件
  • 西部数码网站管理助手serv-u默认密码加工网袋的设备多少钱
  • 三亚旅游网站建设做网站公司昆明
  • 网站顶部公告代码wordpress 调用文章列表
  • 徐州开发区中学网站网站建设影音先锋网址
  • 章丘哪里有建设网站的打开小程序入口直接进入
  • 创业园网站建设wordpress网页手机版
  • 网站备案填了虚假座机能过吗潍坊市企业网站建设