qlineedit校验输入合法性,弹出错误提示框

不解释题目,直接上效果图:

做法与思路:

1.错误图标和”名称不合法“这几个字都是显示在一个qlabel中的,但是这不是一个简单的label,必须继承自qlabel,并重写paintevent()函数,如下所示:

void CWellLogLabel::paintEvent(QPaintEvent *pEvent)

{

QPainter painter(this);

QFontMetrics fontMetrics(font());

QPixmap errPixmap(::GetImagePath()+ "error.png");

painter.drawPixmap(0, (this->height()-errPixmap.height())/2, errPixmap);

painter.setPen(Qt::red);

QString showText = fontMetrics.elidedText(text(),Qt::ElideRight,width()-errPixmap.width());

painter.drawText(rect().adjusted(errPixmap.width() + 3, 0, 0, 0),

Qt::AlignVCenter | Qt::AlignLeft, showText);

}

2.在dialog的构造函数里面,窗口布局中添加此label,并设置为不可见,最后还要获取名称编辑结束的信号,进行处理:

m_pLabel = new CWellLogLabel;

m_pLabel->setVisible(false);

m_pUI->horizontalLayout->addWidget(m_pLabel);

connect(m_pUI->ProjectName,SIGNAL(editingFinished()),this,SLOT(slotOnEditFinished() ));

3.最后写编辑结束信号的响应槽进行校验操作

void CWellLogProjectDialog::slotOnEditFinished()

{

QFont wordfont;

wordfont.setFamily("宋体");

wordfont.setPointSize(10);

QFontMetrics fm(wordfont);

m_pLabel->setText("名称不合法");

QRect rec = fm.boundingRect( m_pLabel->text());

int ii = rec.width();

m_pLabel->setFixedWidth(rec.width() + 16);

m_pLabel->setVisible(true);//一定要重新设置为可见

//QMessageBox::information(NULL,"提示","lfjlasfjolasfjapolsfasp");

}

时间: 2024-08-06 11:57:16

qlineedit校验输入合法性,弹出错误提示框的相关文章

数据库连接失败时,如何捕捉错误,避免弹出错误提示,以便下次自动重新连接

主要是要避免人工介入.一旦弹出错误提示,如果没有人工介入把它关掉,则程序会一直停在那里,无法自动重新连接. 在连接的时候虽然加入了try....except保护,但还是无法避免在操作数据库中数据时网络连接突然断掉或数据库服务被关闭时弹出错误提示. 曾经看到过可以在Application的某个事件中进行处理,但现在检索不到 LZ说的那个事件是Applicataion.OnException,程序所有错误都会触发这个事件 一个系统和数据库连接的代码可能有很多,又存在于不同的单元 每个open/exc

解决PL/SQL Dev连接Oracle弹出空白提示框

第一次安装Oracle,装在虚拟机中,用PL/SQL Dev连接远程数据库的时候老是弹出空白提示框,网上找了很久,解决方法也很多,可是就是没法解决我这种情况的. 没办法,只能自己研究,经过大概一天时间吧,还是搞好了,写个总结. 出现这种问题,解决方法大概有这几种: 1.权限不够,导致弹出空吧提示框.(直接上链接) http://jingyan.baidu.com/article/066074d6760959c3c21cb0d6.html 就PL/SQL图标上点右键---属性---兼容性--管理员

用PHP实现弹出消息提示框

方法一: echo "<script>alert('提示内容')</script>"; 方法二: echo '<script language="JavaScript">;alert("这是";location.href="http://www.jinyuanbao.cn";</script>;'; 里面的location.href="index.htm"表示

[UWP]在应用退出时弹出确认提示框

1. 需求 在应用退出时(点击右上角的关闭按钮)弹出一个确认按钮可以说是一个最常见的操作了,例如记事本的"你是否保存": 但这个功能在UWP上居然有点小复杂.这篇文章将解释如何实现这个功能. 2. CloseRequested 为了监视应用退出事件,我本来使用了CoreApplication.Exiting,但好像并不起作用,后来我就没再研究它的触发机制了.在Windows 10 Creators Update (15063)以后UWP提供了一个新的API:SystemNavigati

删除文件时没有弹出确认提示框

存在的问题: 重装Win10系统后,发现通过右键删除文件和 Ctrl + D 快捷键来删除文件时,没有像之前一样弹出确认提示框了.原本习惯了删除文件后再从确认框中点击一下确认的,突然之间删除文件后它就直接进入了回收站.于是想着怎么解决,恢复从前... 解决方案: 进入回收站中,右键选择属性,弹出回收站属性窗口 2.对于想要删除文件时弹出确认提示框的磁盘,勾选显示删除确认对话框 桌面上的文件都是在C盘 原文地址:https://www.cnblogs.com/zhiyin1209/p/121501

对于vs2012弹出错误提示“未找到与约束”的错误消息的解决办法!

问题描述: 我是因为一不小心点击了QQ管家里面的自动更新补丁导致的,一般我是不会更新这些补丁的,更新之后就变成了这样! 提示为: 未找到与约束ContractName Microsoft.VisualStudio.Text.ITextDocumentFactoryService RequiredTypeIdentity Microsoft.VisualStudio.Text.ITextDocumentFactoryService匹配的导出     解决过程: 有两种办法: 第一种: 1.参考:

eclipse启动tomcat弹出错误提示:Tomcat setting should be set in tomcat preference page

eclipse启动tomcat可能会弹出以下错误: 主要原因是tomcat没有配置好,解决方案如下: 第一步:Windows->Preference->Server->Runtime Environment然后选择自己安装的Tomcat版本,然后Next,选择Tomcat安装路径,Finish 第二步:Windows->Preference->Tomcat,选择版本及安装路径,然后Apply,最后保存退出即可 检测:启动tomcat 图解如下:

关闭当前的子窗口,刷新父窗口,弹出层提示框

近期,在做后台的管理页面,为了有更好的用户体验,需要实现关闭当前页面,刷新父窗口,在网上查找方法,如下: JS代码如下: <script>  function refreshParent() {   window.opener.location.href = window.opener.location.href;   window.close(); } </script> html页面代码如下: <input type="button" id="

cocos2dx 3.x(纯代码实现弹出对话框/提示框/警告框)

头文件: // //  PopAlertDialog.h //  macstudycocos2dx // //  Created by WangWei on 15/6/8. // // #ifndef __macstudycocos2dx__PopAlertDialog__ #define __macstudycocos2dx__PopAlertDialog__ #pragma once #include "cocos2d.h" #include "cocos-ext.h&q